home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / AIncludes / OCEAuthDir.a < prev    next >
Encoding:
Text File  |  1998-08-17  |  202.1 KB  |  5,086 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        OCEAuthDir.a
  3. ;
  4. ;    Contains:    Apple Open Collaboration Environment Authentication Interfaces.
  5. ;
  6. ;    Version:    Technology:    AOCE Toolbox 1.02
  7. ;                Release:    Universal Interfaces 3.2
  8. ;
  9. ;    Copyright:    © 1994-1998 by Apple Computer, Inc., all rights reserved.
  10. ;
  11. ;    Bugs?:        For bug reports, consult the following page on
  12. ;                the World Wide Web:
  13. ;
  14. ;                    http://developer.apple.com/bugreporter/
  15. ;
  16. ;
  17.     IF &TYPE('__OCEAUTHDIR__') = 'UNDEFINED' THEN
  18. __OCEAUTHDIR__ SET 1
  19.  
  20.     IF &TYPE('__APPLETALK__') = 'UNDEFINED' THEN
  21.     include 'AppleTalk.a'
  22.     ENDIF
  23.     IF &TYPE('__FILES__') = 'UNDEFINED' THEN
  24.     include 'Files.a'
  25.     ENDIF
  26.     IF &TYPE('__OSUTILS__') = 'UNDEFINED' THEN
  27.     include 'OSUtils.a'
  28.     ENDIF
  29.     IF &TYPE('__MACTYPES__') = 'UNDEFINED' THEN
  30.     include 'MacTypes.a'
  31.     ENDIF
  32.  
  33.     IF &TYPE('__OCE__') = 'UNDEFINED' THEN
  34.     include 'OCE.a'
  35.     ENDIF
  36.  
  37. ; ****************************************************************************
  38.  
  39. kRC4KeySizeInBytes                EQU        8                    ; size of an RC4 key 
  40. kRefNumUnknown                    EQU        0
  41.  
  42. kEnumDistinguishedNameBit        EQU        0
  43. kEnumAliasBit                    EQU        1
  44. kEnumPseudonymBit                EQU        2
  45. kEnumDNodeBit                    EQU        3
  46. kEnumInvisibleBit                EQU        4
  47. ;  Values of DirEnumChoices 
  48.  
  49. kEnumDistinguishedNameMask        EQU        $00000001
  50. kEnumAliasMask                    EQU        $00000002
  51. kEnumPseudonymMask                EQU        $00000004
  52. kEnumDNodeMask                    EQU        $00000008
  53. kEnumInvisibleMask                EQU        $00000010
  54. kEnumAllMask                    EQU        $0000001F
  55. ; typedef unsigned long                 DirEnumChoices
  56.  
  57. ;  Values of DirSortOption 
  58.  
  59. kSortByName                        EQU        0
  60. kSortByType                        EQU        1
  61.  
  62. ;  Values of DirSortDirection 
  63.  
  64. kSortForwards                    EQU        0
  65. kSortBackwards                    EQU        1
  66. ;  Values of DirMatchWith 
  67.  
  68. kMatchAll                        EQU        0
  69. kExactMatch                        EQU        1
  70. kBeginsWith                        EQU        2
  71. kEndingWith                        EQU        3
  72. kContaining                        EQU        4
  73. ; typedef unsigned char                 DirMatchWith
  74.  
  75.  
  76. kCurrentOCESortVersion            EQU        1
  77. ;   Access controls are implemented on three levels:
  78. ; *      DNode, Record, and Attribute Type levels
  79. ; *  Some access control bits apply to the container itself, and some apply to its contents.
  80. ; *
  81. ; *  The Catalog Toolbox supports six functions.  These calls are:
  82. ; *  DSGetDNodeAccessControl : to get Access Controls at the DNode level
  83. ; *    DSGetRecordAccessControl  : to get Access Controls at the record level
  84. ; *  DSGetAttributeAccessControl : to get Access Privileges at the attribute type level
  85. ; * 
  86. ; *  The GetXXXAccessControl calls will return access control masks for various categories
  87. ; *  of users.  Please refer to the access control document for a description of the
  88. ; *  categories of users.  In general these are:
  89. ; *      ThisRecordOwner         - means the identity of the record itself
  90. ; *      Friends                  - means any one of the assigned friends for the record
  91. ; *      AuthenticatedInDNode     - means any valid user that is an authenticated entity
  92. ; *          in the DNode in which this record is located
  93. ; *      AuthenticatedInDirectory - means any valid authenticated catalog user
  94. ; *      Guest                      - means an unauthenticated user.
  95. ; *  Bit masks for various permitted access controls are defined below.
  96. ; *
  97. ; *  GetXXXAccessControl calls will return access control masks for various categories of
  98. ; *  users for this record. In addition they also return the level of access controls
  99. ; *  that the user (who is making the GetXXXAccessControl call) has for the DNode,
  100. ; *  record, or attribute type.
  101. ; *
  102. ; *  For records, the access control granted will be minimum of the DNode access
  103. ; *  control and record access control masks.  For example, to add an attribute type to a
  104. ; *  record, a user must have access control kCreateAttributeTypes at the record and
  105. ; *  DNode levels.  Similarly, at the attribute type level, access controls will be the
  106. ; *  minimum of the DNode, record, and attribute type access controls.
  107. ; *
  108. ; *  
  109.  
  110. ;  access privileges bit numbers 
  111.  
  112. kSeeBit                            EQU        0
  113. kAddBit                            EQU        1
  114. kDeleteBit                        EQU        2
  115. kChangeBit                        EQU        3
  116. kRenameBit                        EQU        4
  117. kChangePrivsBit                    EQU        5
  118. kSeeFoldersBit                    EQU        6
  119. ;  Values of AccessMask 
  120.  
  121. kSeeMask                        EQU        $00000001
  122. kAddMask                        EQU        $00000002
  123. kDeleteMask                        EQU        $00000004
  124. kChangeMask                        EQU        $00000008
  125. kRenameMask                        EQU        $00000010
  126. kChangePrivsMask                EQU        $00000020
  127. kSeeFoldersMask                    EQU        $00000040
  128.  
  129. kAllPrivs                        EQU        $0000007F
  130. kNoPrivs                        EQU        0
  131. ;
  132. ;kSupportsDNodeNumberBit:
  133. ;If this bit is set, a DNode can be referenced using DNodeNumbers. 
  134. ;RecordLocationInfo can be specified using DNodeNumber and PathName component can be nil. 
  135. ;If this bit is not set, a DNode can be referenced only by PathName to the DNode. In the 
  136. ;later case DNodeNumber component inside record location info must be set to zero.
  137. ;
  138. ;kSupportsRecordCreationIDBit:
  139. ;If this bit is set, a record can be referenced by specifying CreationID 
  140. ;in most catalog manager calls. If this bit is not set recordName and recordType are 
  141. ;required in the recordID specification for all catalog manager calls.
  142. ;
  143. ;kSupportsAttributeCreationIDBit:
  144. ;If this bit is set, an attribute value can be obtained by specifying it's 
  145. ;CreationID in Lookup call staring point and also can be used in operations 
  146. ;like DeleteAttributeValue and ChangeAttributeValue an Attribute can be 
  147. ;specified by AttributeType and CreationID.
  148. ;
  149. ;*************************************************************************
  150. ;Implicit assumption with creationID's and dNodeNumbers are, when supported
  151. ;they are persistent and will preserved across boots and life of the system.
  152. ;*************************************************************************
  153. ;
  154. ;Following three bits are for determining the sort order in enumeration.
  155. ;kSupportsMatchAllBit:
  156. ;If this bit is set, enumeration of all the records is supported
  157. ;
  158. ;kSupportsBeginsWithBit:
  159. ;If this bit is set, enumeration of records matching prefix (e.g. Begin with abc)
  160. ;is supported
  161. ;
  162. ;kSupportsExactMatchBit:
  163. ;If this bit is set, existence of a record matching exact matchNameString and recordType
  164. ;is supported.
  165. ;
  166. ;kSupportsEndsWithBit:
  167. ;If this bit is set, enumeration of records matching suffix (e.g. end with abc)
  168. ;is supported.
  169. ;
  170. ;kSupportsContainsBit:
  171. ;If this bit is set, enumeration of records containing a matchNameString (e.g. containing abc)
  172. ;is supported
  173. ;
  174. ;
  175. ;Implicit assumption in all these is, a record type can be specified either as one of the above or
  176. ;a type list(more then one) to match exact type.
  177. ;The Following four bits will indicate sort ordering in enumeration.
  178. ;
  179. ;kSupportsOrderedEnumerationBit:
  180. ;If this bit is set, Enumerated records or in some order possibly in name order.
  181. ;
  182. ;kCanSupportNameOrderBit:
  183. ;If this is set, catalog will support sortbyName option in Enumerate.
  184. ;
  185. ;kCanSupportTypeOrderBit:
  186. ;If this bit is set, catalog will support sortbyType option in enumearte.
  187. ;
  188. ;kSupportSortBackwardsBit:
  189. ;If this bit is set, catalog supports backward sorting.
  190. ;
  191. ;kSupportIndexRatioBit:
  192. ;If this bit is set, it indicates that enumeration will return approximate position
  193. ;of a record (percentile) among all records.
  194. ;
  195. ;kSupportsEnumerationContinueBit:
  196. ;If this bit is set, catalog supports enumeration continue.
  197. ;
  198. ;kSupportsLookupContinueBit:
  199. ;If this bit is set, catalog supports lookup continue.
  200. ;
  201. ;kSupportsEnumerateAttributeTypeContinueBit:
  202. ;If this bit is set, catalog supports EnumerateAttributeType continue.
  203. ;
  204. ;kSupportsEnumeratePseudonymContinueBit:
  205. ;If this bit is set, catalog supports EnumeratePseudonym continue.
  206. ;
  207. ;kSupportsAliasesBit:
  208. ;If this bit is set, catalog supports create/delte/enumerate 
  209. ;of Alias Records.
  210. ;
  211. ;kSupportPseudonymBit: 
  212. ;If this bit is set, catalog supports create/delte/enumerate of 
  213. ;pseudonyms for a record.
  214. ;
  215. ;kSupportsPartialPathNameBit:
  216. ;If this bit is set, catalog nodes can be specified using DNodeNumber of a 
  217. ;intermediate DNode and a partial name starting from that DNode to the intended 
  218. ;DNode.
  219. ;
  220. ;kSupportsAuthenticationBit:
  221. ;If this bit is set, catalog supports authentication manager calls.
  222. ;
  223. ;kSupportsProxiesBit:
  224. ;If this bit is set, catalog supports proxy related calls in authentication manager. 
  225. ;
  226. ;kSupportsFindRecordBit:
  227. ;If this bit is set, catalog supports find record call.
  228. ;
  229. ;Bits and corresponding masks are as defined below.
  230. ;
  231.  
  232.  
  233. kSupportsDNodeNumberBit            EQU        0
  234. kSupportsRecordCreationIDBit    EQU        1
  235. kSupportsAttributeCreationIDBit    EQU        2
  236. kSupportsMatchAllBit            EQU        3
  237. kSupportsBeginsWithBit            EQU        4
  238. kSupportsExactMatchBit            EQU        5
  239. kSupportsEndsWithBit            EQU        6
  240. kSupportsContainsBit            EQU        7
  241. kSupportsOrderedEnumerationBit    EQU        8
  242. kCanSupportNameOrderBit            EQU        9
  243. kCanSupportTypeOrderBit            EQU        10
  244. kSupportSortBackwardsBit        EQU        11
  245. kSupportIndexRatioBit            EQU        12
  246. kSupportsEnumerationContinueBit    EQU        13
  247. kSupportsLookupContinueBit        EQU        14
  248. kSupportsEnumerateAttributeTypeContinueBit EQU 15
  249. kSupportsEnumeratePseudonymContinueBit EQU 16
  250. kSupportsAliasesBit                EQU        17
  251. kSupportsPseudonymsBit            EQU        18
  252. kSupportsPartialPathNamesBit    EQU        19
  253. kSupportsAuthenticationBit        EQU        20
  254. kSupportsProxiesBit                EQU        21
  255. kSupportsFindRecordBit            EQU        22
  256. ;  values of DirGestalt 
  257.  
  258. kSupportsDNodeNumberMask        EQU        $00000001
  259. kSupportsRecordCreationIDMask    EQU        $00000002
  260. kSupportsAttributeCreationIDMask EQU    $00000004
  261. kSupportsMatchAllMask            EQU        $00000008
  262. kSupportsBeginsWithMask            EQU        $00000010
  263. kSupportsExactMatchMask            EQU        $00000020
  264. kSupportsEndsWithMask            EQU        $00000040
  265. kSupportsContainsMask            EQU        $00000080
  266. kSupportsOrderedEnumerationMask    EQU        $00000100
  267. kCanSupportNameOrderMask        EQU        $00000200
  268. kCanSupportTypeOrderMask        EQU        $00000400
  269. kSupportSortBackwardsMask        EQU        $00000800
  270. kSupportIndexRatioMask            EQU        $00001000
  271. kSupportsEnumerationContinueMask EQU    $00002000
  272. kSupportsLookupContinueMask        EQU        $00004000
  273. kSupportsEnumerateAttributeTypeContinueMask EQU $00008000
  274. kSupportsEnumeratePseudonymContinueMask EQU $00010000
  275. kSupportsAliasesMask            EQU        $00020000
  276. kSupportsPseudonymsMask            EQU        $00040000
  277. kSupportsPartialPathNamesMask    EQU        $00080000
  278. kSupportsAuthenticationMask        EQU        $00100000
  279. kSupportsProxiesMask            EQU        $00200000
  280. kSupportsFindRecordMask            EQU        $00400000
  281.  
  282. ;  Values of AuthLocalIdentityOp 
  283.  
  284. kAuthLockLocalIdentityOp        EQU        1
  285. kAuthUnlockLocalIdentityOp        EQU        2
  286. kAuthLocalIdentityNameChangeOp    EQU        3
  287. ;  Values of AuthLocalIdentityLockAction 
  288.  
  289. kAuthLockPending                EQU        1
  290. kAuthLockWillBeDone                EQU        2
  291.  
  292. ;  Values of AuthNotifications 
  293.  
  294. kNotifyLockBit                    EQU        0
  295. kNotifyUnlockBit                EQU        1
  296. kNotifyNameChangeBit            EQU        2
  297.  
  298. kNotifyLockMask                    EQU        $00000001
  299. kNotifyUnlockMask                EQU        $00000002
  300. kNotifyNameChangeMask            EQU        $00000004
  301.  
  302. kPersonalDirectoryFileCreator    EQU        'kl03'
  303. kPersonalDirectoryFileType        EQU        'pabt'
  304. kBusinessCardFileType            EQU        'bust'
  305. kDirectoryFileType                EQU        'dirt'
  306. kDNodeFileType                    EQU        'dnod'
  307. kDirsRootFileType                EQU        'drtt'
  308. kRecordFileType                    EQU        'rcrd'
  309. ; typedef unsigned short                 DirSortOption
  310.  
  311. ; typedef unsigned short                 DirSortDirection
  312.  
  313. ; typedef unsigned long                 AccessMask
  314.  
  315. ; typedef unsigned long                 DirGestalt
  316.  
  317. ; typedef unsigned long                 AuthLocalIdentityOp
  318.  
  319. ; typedef unsigned long                 AuthLocalIdentityLockAction
  320.  
  321. ; typedef unsigned long                 AuthNotifications
  322.  
  323. DNodeID                    RECORD 0
  324. dNodeNumber                 ds.l    1                ; offset: $0 (0)        ;  dNodenumber  
  325. reserved1                 ds.l    1                ; offset: $4 (4)
  326. name                     ds.l    1                ; offset: $8 (8)
  327. reserved2                 ds.l    1                ; offset: $C (12)
  328. sizeof                     EQU *                    ; size:   $10 (16)
  329.                         ENDR
  330. DirEnumSpec                RECORD 0
  331. enumFlag                 ds.l    1                ; offset: $0 (0)
  332. indexRatio                 ds.w    1                ; offset: $4 (4)        ;  Approx Record Position between 1 and 100 If supported, 0 If not supported 
  333. recordIdentifier         ds        LocalRecordID    ; offset: $6 (6)
  334.                          ORG 6
  335. dNodeIdentifier             ds        DNodeID            ; offset: $6 (6)
  336. sizeof                     EQU *                    ; size:   $16 (22)
  337.                         ENDR
  338. DirMetaInfo                RECORD 0
  339. info                     ds.l    4                ; offset: $0 (0)
  340. sizeof                     EQU *                    ; size:   $10 (16)
  341.                         ENDR
  342. SLRV                    RECORD 0
  343. script                     ds.w    1                ; offset: $0 (0)        ;    Script code in which entries are sorted 
  344. language                 ds.w    1                ; offset: $2 (2)        ;    Language code in which entries are sorted 
  345. regionCode                 ds.w    1                ; offset: $4 (4)        ;    Region code in which entries are sorted 
  346. version                     ds.w    1                ; offset: $6 (6)        ;   version of oce sorting software 
  347. sizeof                     EQU *                    ; size:   $8 (8)
  348.                         ENDR
  349. ;  Catalog types and operations 
  350. ;  unique identifier for an identity 
  351. ; typedef unsigned long                 AuthIdentity
  352.  
  353. ;  Umbrella LocalIdentity 
  354. ; typedef AuthIdentity                     LocalIdentity
  355.  
  356. ;  A DES key is 8 bytes of data 
  357. DESKey                    RECORD 0
  358. desA                     ds.l    1                ; offset: $0 (0)
  359. desB                     ds.l    1                ; offset: $4 (4)
  360. sizeof                     EQU *                    ; size:   $8 (8)
  361.                         ENDR
  362. RC4Key                    RECORD 0
  363. elements                 ds.b    8
  364. sizeof                     EQU *                    ; size:   $8 (8)
  365.                         ENDR
  366.  
  367.  
  368. ; typedef unsigned long                 AuthKeyType
  369.  
  370. ;  key type followed by its data 
  371. AuthKey                    RECORD 0
  372. keyType                     ds.l    1                ; offset: $0 (0)
  373. des                         ds        DESKey            ; offset: $4 (4)
  374.                          ORG 4
  375. rc4                         ds        RC4Key            ; offset: $4 (4)
  376. sizeof                     EQU *                    ; size:   $C (12)
  377.                         ENDR
  378. ; typedef struct AuthKey *                AuthKeyPtr
  379.  
  380.  
  381.  
  382. ; typedef AuthParamBlock *                AuthParamBlockPtr
  383.  
  384. ;  Fix parameter passing convention (#1274062) ggs, 8-7-95 
  385. ; *****************************************************************************
  386. ;
  387. ;
  388. ;        Authentication Manager operations 
  389. ;
  390. ;****************************************************************************
  391.  
  392. ;kAuthResolveCreationID:
  393. ;userRecord will contain the user information whose creationID has to be
  394. ;returned. A client must make this call when he does not know the creaitionID.
  395. ;The creationID must be set to nil before making the call. The server will attempt
  396. ;to match the recordid's in the data base which match the user name and
  397. ;type in the record.  Depending on number of matchings, following
  398. ;results will be returned.
  399. ;Exactly One Match : CreationID in RecordID and also in buffer (if buffer is given)
  400. ;totalMatches = actualMatches = 1.
  401. ;> 1 Match:
  402. ;    Buffer is Large Enough:
  403. ;    totalMatches = actualMatches
  404. ;    Buffer will contain all the CIDs, kOCEAmbiguousMatches error.
  405. ;> 1 Match:
  406. ;    Buffer is not Large Enough:
  407. ;    totalMatches > actualMatches
  408. ;    Buffer will contain all the CIDs (equal to actualMatches), daMoreDataError error.
  409. ;0 Matches:
  410. ; kOCENoSuchRecord error
  411. ;
  412.  
  413. AuthResolveCreationIDPB    RECORD 0
  414. qLink                     ds.l    1                ; offset: $0 (0)
  415. reserved1                 ds.l    1                ; offset: $4 (4)
  416. reserved2                 ds.l    1                ; offset: $8 (8)
  417. ioCompletion             ds.l    1                ; offset: $C (12)
  418. ioResult                 ds.w    1                ; offset: $10 (16)
  419. saveA5                     ds.l    1                ; offset: $12 (18)
  420. reqCode                     ds.w    1                ; offset: $16 (22)
  421. reserved                 ds.l    2                ; offset: $18 (24)
  422. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  423. dsRefNum                 ds.w    1                ; offset: $24 (36)
  424. callID                     ds.l    1                ; offset: $26 (38)
  425. identity                 ds.l    1                ; offset: $2A (42)
  426. gReserved1                 ds.l    1                ; offset: $2E (46)
  427. gReserved2                 ds.l    1                ; offset: $32 (50)
  428. gReserved3                 ds.l    1                ; offset: $36 (54)
  429. clientData                 ds.l    1                ; offset: $3A (58)
  430. userRecord                 ds.l    1                ; offset: $3E (62)        ;   --> OCE name(Record) of the user 
  431. bufferLength             ds.l    1                ; offset: $42 (66)        ;   --> Buffer Size to hold duplicate Info 
  432. buffer                     ds.l    1                ; offset: $46 (70)        ;   --> Buffer  to hold duplicate Info 
  433. totalMatches             ds.l    1                ; offset: $4A (74)        ;  <--  Total Number of matching names found 
  434. actualMatches             ds.l    1                ; offset: $4E (78)        ;  <--  Number of matches returned in the buffer 
  435. sizeof                     EQU *                    ; size:   $52 (82)
  436.                         ENDR
  437. ;kAuthBindSpecificIdentity:
  438. ;userRecord will contain the user information whose identity has to be
  439. ;verified. userKey will contain the userKey. An Identity is returned which
  440. ;binds the key and the userRecord. The identity returned can be used in the 'identity'
  441. ;field in the header portion (AuthParamHeader) for authenticating the Catalog and
  442. ;Authentication manager calls.
  443. ;
  444.  
  445. AuthBindSpecificIdentityPB RECORD 0
  446. qLink                     ds.l    1                ; offset: $0 (0)
  447. reserved1                 ds.l    1                ; offset: $4 (4)
  448. reserved2                 ds.l    1                ; offset: $8 (8)
  449. ioCompletion             ds.l    1                ; offset: $C (12)
  450. ioResult                 ds.w    1                ; offset: $10 (16)
  451. saveA5                     ds.l    1                ; offset: $12 (18)
  452. reqCode                     ds.w    1                ; offset: $16 (22)
  453. reserved                 ds.l    2                ; offset: $18 (24)
  454. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  455. dsRefNum                 ds.w    1                ; offset: $24 (36)
  456. callID                     ds.l    1                ; offset: $26 (38)
  457. identity                 ds.l    1                ; offset: $2A (42)
  458. gReserved1                 ds.l    1                ; offset: $2E (46)
  459. gReserved2                 ds.l    1                ; offset: $32 (50)
  460. gReserved3                 ds.l    1                ; offset: $36 (54)
  461. clientData                 ds.l    1                ; offset: $3A (58)
  462. userIdentity             ds.l    1                ; offset: $3E (62)        ;  <--  binding identity 
  463. userRecord                 ds.l    1                ; offset: $42 (66)        ;   --> OCE name(Record) of the user 
  464. userKey                     ds.l    1                ; offset: $46 (70)        ;   --> OCE Key for the user 
  465. sizeof                     EQU *                    ; size:   $4A (74)
  466.                         ENDR
  467. ;kAuthUnbindSpecificIdentity:
  468. ;This call will unbind the userRecord and key which were bind earlier.
  469. ;
  470.  
  471. AuthUnbindSpecificIdentityPB RECORD 0
  472. qLink                     ds.l    1                ; offset: $0 (0)
  473. reserved1                 ds.l    1                ; offset: $4 (4)
  474. reserved2                 ds.l    1                ; offset: $8 (8)
  475. ioCompletion             ds.l    1                ; offset: $C (12)
  476. ioResult                 ds.w    1                ; offset: $10 (16)
  477. saveA5                     ds.l    1                ; offset: $12 (18)
  478. reqCode                     ds.w    1                ; offset: $16 (22)
  479. reserved                 ds.l    2                ; offset: $18 (24)
  480. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  481. dsRefNum                 ds.w    1                ; offset: $24 (36)
  482. callID                     ds.l    1                ; offset: $26 (38)
  483. identity                 ds.l    1                ; offset: $2A (42)
  484. gReserved1                 ds.l    1                ; offset: $2E (46)
  485. gReserved2                 ds.l    1                ; offset: $32 (50)
  486. gReserved3                 ds.l    1                ; offset: $36 (54)
  487. clientData                 ds.l    1                ; offset: $3A (58)
  488. userIdentity             ds.l    1                ; offset: $3E (62)        ;   --> identity to be deleted 
  489. sizeof                     EQU *                    ; size:   $42 (66)
  490.                         ENDR
  491.  
  492. ;kAuthGetSpecificIdentityInfo:
  493. ;This call will return the userRecord for the given identity. Note: key is not
  494. ;returned because this would compromise security.
  495. ;
  496.  
  497. AuthGetSpecificIdentityInfoPB RECORD 0
  498. qLink                     ds.l    1                ; offset: $0 (0)
  499. reserved1                 ds.l    1                ; offset: $4 (4)
  500. reserved2                 ds.l    1                ; offset: $8 (8)
  501. ioCompletion             ds.l    1                ; offset: $C (12)
  502. ioResult                 ds.w    1                ; offset: $10 (16)
  503. saveA5                     ds.l    1                ; offset: $12 (18)
  504. reqCode                     ds.w    1                ; offset: $16 (22)
  505. reserved                 ds.l    2                ; offset: $18 (24)
  506. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  507. dsRefNum                 ds.w    1                ; offset: $24 (36)
  508. callID                     ds.l    1                ; offset: $26 (38)
  509. identity                 ds.l    1                ; offset: $2A (42)
  510. gReserved1                 ds.l    1                ; offset: $2E (46)
  511. gReserved2                 ds.l    1                ; offset: $32 (50)
  512. gReserved3                 ds.l    1                ; offset: $36 (54)
  513. clientData                 ds.l    1                ; offset: $3A (58)
  514. userIdentity             ds.l    1                ; offset: $3E (62)        ;   --> identity of initiator 
  515. userRecord                 ds.l    1                ; offset: $42 (66)        ;  <--  OCE name(Record) of the user 
  516. sizeof                     EQU *                    ; size:   $46 (70)
  517.                         ENDR
  518.  
  519. ;kAuthAddKey:
  520. ;userRecord will contain the user information whose identity has to be
  521. ;created. userKey will point to the key to be created. password points to
  522. ;an RString containing the password used to generate the key.
  523. ;
  524.  
  525. AuthAddKeyPB            RECORD 0
  526. qLink                     ds.l    1                ; offset: $0 (0)
  527. reserved1                 ds.l    1                ; offset: $4 (4)
  528. reserved2                 ds.l    1                ; offset: $8 (8)
  529. ioCompletion             ds.l    1                ; offset: $C (12)
  530. ioResult                 ds.w    1                ; offset: $10 (16)
  531. saveA5                     ds.l    1                ; offset: $12 (18)
  532. reqCode                     ds.w    1                ; offset: $16 (22)
  533. reserved                 ds.l    2                ; offset: $18 (24)
  534. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  535. dsRefNum                 ds.w    1                ; offset: $24 (36)
  536. callID                     ds.l    1                ; offset: $26 (38)
  537. identity                 ds.l    1                ; offset: $2A (42)
  538. gReserved1                 ds.l    1                ; offset: $2E (46)
  539. gReserved2                 ds.l    1                ; offset: $32 (50)
  540. gReserved3                 ds.l    1                ; offset: $36 (54)
  541. clientData                 ds.l    1                ; offset: $3A (58)
  542. userRecord                 ds.l    1                ; offset: $3E (62)        ;   --> OCE name(Record) of the user 
  543. userKey                     ds.l    1                ; offset: $42 (66)        ;  <--  OCE Key for the user 
  544. password                 ds.l    1                ; offset: $46 (70)        ;   --> Pointer to password string 
  545. sizeof                     EQU *                    ; size:   $4A (74)
  546.                         ENDR
  547. ;kAuthChangeKey:
  548. ;userRecord will contain the user information whose identity has to be
  549. ;created. userKey will point to the key to be created. password points to
  550. ;an RString containing the password used to generate the key.
  551. ;
  552.  
  553. AuthChangeKeyPB            RECORD 0
  554. qLink                     ds.l    1                ; offset: $0 (0)
  555. reserved1                 ds.l    1                ; offset: $4 (4)
  556. reserved2                 ds.l    1                ; offset: $8 (8)
  557. ioCompletion             ds.l    1                ; offset: $C (12)
  558. ioResult                 ds.w    1                ; offset: $10 (16)
  559. saveA5                     ds.l    1                ; offset: $12 (18)
  560. reqCode                     ds.w    1                ; offset: $16 (22)
  561. reserved                 ds.l    2                ; offset: $18 (24)
  562. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  563. dsRefNum                 ds.w    1                ; offset: $24 (36)
  564. callID                     ds.l    1                ; offset: $26 (38)
  565. identity                 ds.l    1                ; offset: $2A (42)
  566. gReserved1                 ds.l    1                ; offset: $2E (46)
  567. gReserved2                 ds.l    1                ; offset: $32 (50)
  568. gReserved3                 ds.l    1                ; offset: $36 (54)
  569. clientData                 ds.l    1                ; offset: $3A (58)
  570. userRecord                 ds.l    1                ; offset: $3E (62)        ;   --> OCE name(Record) of the user 
  571. userKey                     ds.l    1                ; offset: $42 (66)        ;  <--  New OCE Key for the user 
  572. password                 ds.l    1                ; offset: $46 (70)        ;   -->Pointer to the new password string 
  573. sizeof                     EQU *                    ; size:   $4A (74)
  574.                         ENDR
  575. ;AuthDeleteKey:
  576. ;userRecord will contain the user information whose Key has to be deleted.
  577. ;
  578.  
  579. AuthDeleteKeyPB            RECORD 0
  580. qLink                     ds.l    1                ; offset: $0 (0)
  581. reserved1                 ds.l    1                ; offset: $4 (4)
  582. reserved2                 ds.l    1                ; offset: $8 (8)
  583. ioCompletion             ds.l    1                ; offset: $C (12)
  584. ioResult                 ds.w    1                ; offset: $10 (16)
  585. saveA5                     ds.l    1                ; offset: $12 (18)
  586. reqCode                     ds.w    1                ; offset: $16 (22)
  587. reserved                 ds.l    2                ; offset: $18 (24)
  588. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  589. dsRefNum                 ds.w    1                ; offset: $24 (36)
  590. callID                     ds.l    1                ; offset: $26 (38)
  591. identity                 ds.l    1                ; offset: $2A (42)
  592. gReserved1                 ds.l    1                ; offset: $2E (46)
  593. gReserved2                 ds.l    1                ; offset: $32 (50)
  594. gReserved3                 ds.l    1                ; offset: $36 (54)
  595. clientData                 ds.l    1                ; offset: $3A (58)
  596. userRecord                 ds.l    1                ; offset: $3E (62)        ;   --> OCE name(Record) of the user 
  597. sizeof                     EQU *                    ; size:   $42 (66)
  598.                         ENDR
  599. ;  AuthPasswordToKey: Converts an RString into a key. 
  600. AuthPasswordToKeyPB        RECORD 0
  601. qLink                     ds.l    1                ; offset: $0 (0)
  602. reserved1                 ds.l    1                ; offset: $4 (4)
  603. reserved2                 ds.l    1                ; offset: $8 (8)
  604. ioCompletion             ds.l    1                ; offset: $C (12)
  605. ioResult                 ds.w    1                ; offset: $10 (16)
  606. saveA5                     ds.l    1                ; offset: $12 (18)
  607. reqCode                     ds.w    1                ; offset: $16 (22)
  608. reserved                 ds.l    2                ; offset: $18 (24)
  609. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  610. dsRefNum                 ds.w    1                ; offset: $24 (36)
  611. callID                     ds.l    1                ; offset: $26 (38)
  612. identity                 ds.l    1                ; offset: $2A (42)
  613. gReserved1                 ds.l    1                ; offset: $2E (46)
  614. gReserved2                 ds.l    1                ; offset: $32 (50)
  615. gReserved3                 ds.l    1                ; offset: $36 (54)
  616. clientData                 ds.l    1                ; offset: $3A (58)
  617. userRecord                 ds.l    1                ; offset: $3E (62)        ;   --> OCE name(Record) of the user 
  618. key                         ds.l    1                ; offset: $42 (66)        ;  <--  
  619. password                 ds.l    1                ; offset: $46 (70)        ;   -->Pointer to the new password string 
  620. sizeof                     EQU *                    ; size:   $4A (74)
  621.                         ENDR
  622. ;kAuthGetCredentials:
  623. ;userRecord will contain the user information whose identity has to be
  624. ;kMailDeletedMask. keyType (e.g. asDESKey) will indicate what type of key has to
  625. ;be deleted.
  626. ;
  627.  
  628. AuthGetCredentialsPB    RECORD 0
  629. qLink                     ds.l    1                ; offset: $0 (0)
  630. reserved1                 ds.l    1                ; offset: $4 (4)
  631. reserved2                 ds.l    1                ; offset: $8 (8)
  632. ioCompletion             ds.l    1                ; offset: $C (12)
  633. ioResult                 ds.w    1                ; offset: $10 (16)
  634. saveA5                     ds.l    1                ; offset: $12 (18)
  635. reqCode                     ds.w    1                ; offset: $16 (22)
  636. reserved                 ds.l    2                ; offset: $18 (24)
  637. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  638. dsRefNum                 ds.w    1                ; offset: $24 (36)
  639. callID                     ds.l    1                ; offset: $26 (38)
  640. identity                 ds.l    1                ; offset: $2A (42)
  641. gReserved1                 ds.l    1                ; offset: $2E (46)
  642. gReserved2                 ds.l    1                ; offset: $32 (50)
  643. gReserved3                 ds.l    1                ; offset: $36 (54)
  644. clientData                 ds.l    1                ; offset: $3A (58)
  645. userIdentity             ds.l    1                ; offset: $3E (62)        ;   --> identity of initiator 
  646. recipient                 ds.l    1                ; offset: $42 (66)        ;   --> OCE name of recipient 
  647. sessionKey                 ds.l    1                ; offset: $46 (70)        ;  <--  session key 
  648. expiry                     ds.l    1                ; offset: $4A (74)        ;  <--> desired/actual expiry 
  649. credentialsLength         ds.l    1                ; offset: $4E (78)        ;  <--> max/actual credentials size 
  650. credentials                 ds.l    1                ; offset: $52 (82)        ;  <--  buffer where credentials are returned 
  651. sizeof                     EQU *                    ; size:   $56 (86)
  652.                         ENDR
  653. ;AuthDecryptCredentialsPB:
  654. ;Changes:
  655. ;userKey is changed userIdentity.
  656. ;userRecord is changed to initiatorRecord. User must supply buffer
  657. ;to hold initiatorRecord.
  658. ;agentList has changed to agent. There wil be no call back.
  659. ;User must supply buffer to hold agent Record.
  660. ;An additional boolean parameter 'hasAgent' is included.
  661. ;Toolbox will set this if an 'Agent' record is found in the
  662. ;credentials. If RecordIDPtr is 'nil', no agent record will
  663. ;be copied. However user can examine 'hasAgent', If true user
  664. ;can reissue this call with apprpriate buffer for getting a recordID.
  665. ;agent has changed to intermediary.  User must supply buffer to hold 
  666. ;intermediary Record.  The toolbox will set 'hasIntermediary' if an
  667. ;'intermediary' record is found in the credentials. 
  668. ;
  669.  
  670. AuthDecryptCredentialsPB RECORD 0
  671. qLink                     ds.l    1                ; offset: $0 (0)
  672. reserved1                 ds.l    1                ; offset: $4 (4)
  673. reserved2                 ds.l    1                ; offset: $8 (8)
  674. ioCompletion             ds.l    1                ; offset: $C (12)
  675. ioResult                 ds.w    1                ; offset: $10 (16)
  676. saveA5                     ds.l    1                ; offset: $12 (18)
  677. reqCode                     ds.w    1                ; offset: $16 (22)
  678. reserved                 ds.l    2                ; offset: $18 (24)
  679. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  680. dsRefNum                 ds.w    1                ; offset: $24 (36)
  681. callID                     ds.l    1                ; offset: $26 (38)
  682. identity                 ds.l    1                ; offset: $2A (42)
  683. gReserved1                 ds.l    1                ; offset: $2E (46)
  684. gReserved2                 ds.l    1                ; offset: $32 (50)
  685. gReserved3                 ds.l    1                ; offset: $36 (54)
  686. clientData                 ds.l    1                ; offset: $3A (58)
  687. userIdentity             ds.l    1                ; offset: $3E (62)        ;   --> user's Identity 
  688. initiatorRecord             ds.l    1                ; offset: $42 (66)        ;  <--  OCE name of the initiator 
  689. sessionKey                 ds.l    1                ; offset: $46 (70)        ;  <--  session key 
  690. expiry                     ds.l    1                ; offset: $4A (74)        ;  <--  credentials expiry time 
  691. credentialsLength         ds.l    1                ; offset: $4E (78)        ;   --> actual credentials size 
  692. credentials                 ds.l    1                ; offset: $52 (82)        ;   --> credentials to be decrypted 
  693. issueTime                 ds.l    1                ; offset: $56 (86)        ;  <--  credentials expiry time 
  694. hasIntermediary             ds.b    1                ; offset: $5A (90)        ;  <--  if true, An intermediary Record was found in credentials 
  695. filler1                     ds.b    1                ; offset: $5B (91)
  696. intermediary             ds.l    1                ; offset: $5C (92)        ;  <--  recordID of the intermediary 
  697. sizeof                     EQU *                    ; size:   $60 (96)
  698.                         ENDR
  699.  
  700. AuthMakeChallengePB        RECORD 0
  701. qLink                     ds.l    1                ; offset: $0 (0)
  702. reserved1                 ds.l    1                ; offset: $4 (4)
  703. reserved2                 ds.l    1                ; offset: $8 (8)
  704. ioCompletion             ds.l    1                ; offset: $C (12)
  705. ioResult                 ds.w    1                ; offset: $10 (16)
  706. saveA5                     ds.l    1                ; offset: $12 (18)
  707. reqCode                     ds.w    1                ; offset: $16 (22)
  708. reserved                 ds.l    2                ; offset: $18 (24)
  709. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  710. dsRefNum                 ds.w    1                ; offset: $24 (36)
  711. callID                     ds.l    1                ; offset: $26 (38)
  712. identity                 ds.l    1                ; offset: $2A (42)
  713. gReserved1                 ds.l    1                ; offset: $2E (46)
  714. gReserved2                 ds.l    1                ; offset: $32 (50)
  715. gReserved3                 ds.l    1                ; offset: $36 (54)
  716. clientData                 ds.l    1                ; offset: $3A (58)
  717. key                         ds.l    1                ; offset: $3E (62)        ;   --> UnEncrypted SessionKey 
  718. challenge                 ds.l    1                ; offset: $42 (66)        ;  <--  Encrypted Challenge 
  719. challengeBufferLength     ds.l    1                ; offset: $46 (70)        ;   ->length of challenge buffer 
  720. challengeLength             ds.l    1                ; offset: $4A (74)        ;   <-length of Encrypted Challenge 
  721. sizeof                     EQU *                    ; size:   $4E (78)
  722.                         ENDR
  723. AuthMakeReplyPB            RECORD 0
  724. qLink                     ds.l    1                ; offset: $0 (0)
  725. reserved1                 ds.l    1                ; offset: $4 (4)
  726. reserved2                 ds.l    1                ; offset: $8 (8)
  727. ioCompletion             ds.l    1                ; offset: $C (12)
  728. ioResult                 ds.w    1                ; offset: $10 (16)
  729. saveA5                     ds.l    1                ; offset: $12 (18)
  730. reqCode                     ds.w    1                ; offset: $16 (22)
  731. reserved                 ds.l    2                ; offset: $18 (24)
  732. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  733. dsRefNum                 ds.w    1                ; offset: $24 (36)
  734. callID                     ds.l    1                ; offset: $26 (38)
  735. identity                 ds.l    1                ; offset: $2A (42)
  736. gReserved1                 ds.l    1                ; offset: $2E (46)
  737. gReserved2                 ds.l    1                ; offset: $32 (50)
  738. gReserved3                 ds.l    1                ; offset: $36 (54)
  739. clientData                 ds.l    1                ; offset: $3A (58)
  740. key                         ds.l    1                ; offset: $3E (62)        ;   --> UnEncrypted SessionKey 
  741. challenge                 ds.l    1                ; offset: $42 (66)        ;   --> Encrypted Challenge 
  742. reply                     ds.l    1                ; offset: $46 (70)        ;  <--  Encrypted Reply 
  743. replyBufferLength         ds.l    1                ; offset: $4A (74)        ;   -->length of challenge buffer 
  744. challengeLength             ds.l    1                ; offset: $4E (78)        ;   --> length of Encrypted Challenge 
  745. replyLength                 ds.l    1                ; offset: $52 (82)        ;  <--  length of Encrypted Reply 
  746. sizeof                     EQU *                    ; size:   $56 (86)
  747.                         ENDR
  748. AuthVerifyReplyPB        RECORD 0
  749. qLink                     ds.l    1                ; offset: $0 (0)
  750. reserved1                 ds.l    1                ; offset: $4 (4)
  751. reserved2                 ds.l    1                ; offset: $8 (8)
  752. ioCompletion             ds.l    1                ; offset: $C (12)
  753. ioResult                 ds.w    1                ; offset: $10 (16)
  754. saveA5                     ds.l    1                ; offset: $12 (18)
  755. reqCode                     ds.w    1                ; offset: $16 (22)
  756. reserved                 ds.l    2                ; offset: $18 (24)
  757. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  758. dsRefNum                 ds.w    1                ; offset: $24 (36)
  759. callID                     ds.l    1                ; offset: $26 (38)
  760. identity                 ds.l    1                ; offset: $2A (42)
  761. gReserved1                 ds.l    1                ; offset: $2E (46)
  762. gReserved2                 ds.l    1                ; offset: $32 (50)
  763. gReserved3                 ds.l    1                ; offset: $36 (54)
  764. clientData                 ds.l    1                ; offset: $3A (58)
  765. key                         ds.l    1                ; offset: $3E (62)        ;   --> UnEncrypted SessionKey 
  766. challenge                 ds.l    1                ; offset: $42 (66)        ;   --> Encrypted Challenge 
  767. reply                     ds.l    1                ; offset: $46 (70)        ;   --> Encrypted Reply 
  768. challengeLength             ds.l    1                ; offset: $4A (74)        ;   --> length of Encrypted Challenge 
  769. replyLength                 ds.l    1                ; offset: $4E (78)        ;   --> length of Encrypted Reply 
  770. sizeof                     EQU *                    ; size:   $52 (82)
  771.                         ENDR
  772.  
  773.  
  774. ;kAuthGetUTCTime:
  775. ;RLI will contain a valid RLI for a cluster server.
  776. ;UTC(GMT) time from one of the cluster server will be returned.
  777. ;An 'offSet' from UTC(GMT) to Mac Local Time will also be returned.
  778. ;If RLI is nil Map DA is used to determine UTC(GMT).
  779. ;Mac Local Time = theUTCTime + theUTCOffset.
  780. ;
  781.  
  782. AuthGetUTCTimePB        RECORD 0
  783. qLink                     ds.l    1                ; offset: $0 (0)
  784. reserved1                 ds.l    1                ; offset: $4 (4)
  785. reserved2                 ds.l    1                ; offset: $8 (8)
  786. ioCompletion             ds.l    1                ; offset: $C (12)
  787. ioResult                 ds.w    1                ; offset: $10 (16)
  788. saveA5                     ds.l    1                ; offset: $12 (18)
  789. reqCode                     ds.w    1                ; offset: $16 (22)
  790. reserved                 ds.l    2                ; offset: $18 (24)
  791. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  792. dsRefNum                 ds.w    1                ; offset: $24 (36)
  793. callID                     ds.l    1                ; offset: $26 (38)
  794. identity                 ds.l    1                ; offset: $2A (42)
  795. gReserved1                 ds.l    1                ; offset: $2E (46)
  796. gReserved2                 ds.l    1                ; offset: $32 (50)
  797. gReserved3                 ds.l    1                ; offset: $36 (54)
  798. clientData                 ds.l    1                ; offset: $3A (58)
  799. pRLI                     ds.l    1                ; offset: $3E (62)        ;   --> packed RLI of the Node, whose server's UTC is requested 
  800. theUTCTime                 ds.l    1                ; offset: $42 (66)        ;  <--  current UTC(GMT) Time utc seconds since 1/1/1904 
  801. theUTCOffset             ds.l    1                ; offset: $46 (70)        ;  <--  offset from UTC(GMT) seconds EAST of Greenwich 
  802. sizeof                     EQU *                    ; size:   $4A (74)
  803.                         ENDR
  804.  
  805. ;kAuthMakeProxy:
  806. ;A user represented bu the 'userIdentity' can make a proxy using this call.
  807. ;'recipient' is the RecordID of the recipient whom user is requesting proxy.
  808. ;'intermediary' is the RecordID of the intermediary holding proxy for the user.
  809. ;'firstValid' is time at which proxy becomes valid.
  810. ;'expiry' is the time at which proxy must expire.
  811. ;'proxyLength' will have the length of the buffer pointed by 'proxy' as input.
  812. ;When the call completes, it will hold the actual length of proxy. If the
  813. ;call completes 'kOCEMoreData' error, client can reissue the call with the
  814. ;buffer size as 'proxyLength' returned.
  815. ;expiry is a suggestion, and may be adjusted to be earlier by the ADAP/OCE server.
  816. ;The 'proxy' obtained like this might be used by the 'intermediary' to obtain credentials
  817. ;for the server using TradeProxyForCredentials call.
  818. ;authDataLength and authData are intended for possible future work, but are
  819. ;ignored for now.
  820. ;
  821.  
  822. AuthMakeProxyPB            RECORD 0
  823. qLink                     ds.l    1                ; offset: $0 (0)
  824. reserved1                 ds.l    1                ; offset: $4 (4)
  825. reserved2                 ds.l    1                ; offset: $8 (8)
  826. ioCompletion             ds.l    1                ; offset: $C (12)
  827. ioResult                 ds.w    1                ; offset: $10 (16)
  828. saveA5                     ds.l    1                ; offset: $12 (18)
  829. reqCode                     ds.w    1                ; offset: $16 (22)
  830. reserved                 ds.l    2                ; offset: $18 (24)
  831. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  832. dsRefNum                 ds.w    1                ; offset: $24 (36)
  833. callID                     ds.l    1                ; offset: $26 (38)
  834. identity                 ds.l    1                ; offset: $2A (42)
  835. gReserved1                 ds.l    1                ; offset: $2E (46)
  836. gReserved2                 ds.l    1                ; offset: $32 (50)
  837. gReserved3                 ds.l    1                ; offset: $36 (54)
  838. clientData                 ds.l    1                ; offset: $3A (58)
  839. userIdentity             ds.l    1                ; offset: $3E (62)        ;   --> identity of principal 
  840. recipient                 ds.l    1                ; offset: $42 (66)        ;   --> OCE name of recipient 
  841. firstValid                 ds.l    1                ; offset: $46 (70)        ;   --> time at which proxy becomes valid 
  842. expiry                     ds.l    1                ; offset: $4A (74)        ;   --> time at which proxy expires 
  843. authDataLength             ds.l    1                ; offset: $4E (78)        ;   --> size of authorization data 
  844. authData                 ds.l    1                ; offset: $52 (82)        ;   --> pointer to authorization data 
  845. proxyLength                 ds.l    1                ; offset: $56 (86)        ;  <--> max/actual proxy size 
  846. proxy                     ds.l    1                ; offset: $5A (90)        ;  <--> buffer where proxy is returned 
  847. intermediary             ds.l    1                ; offset: $5E (94)        ;   --> RecordID of intermediary 
  848. sizeof                     EQU *                    ; size:   $62 (98)
  849.                         ENDR
  850. ;kAuthTradeProxyForCredentials:
  851. ;Using this call, intermediary holding a 'proxy' for a recipient may obtain credentials
  852. ;for that recipient. 'userIdentity' is the identity for the 'intermediary'.
  853. ;'recipient' is the RecordID for whom credetials are requested.
  854. ;'principal' is the RecordID of the user who created the proxy.
  855. ;'proxyLength' is the length of data pointed by 'proxy.
  856. ;If the call is succesfull, credentials will be returned in the
  857. ;buffer pointed by 'credentials'. 'expiry' is the desired expiry time at input.
  858. ;When call succeds this will have expiry time of credentials.
  859. ;This is very similar to GetCredentials except that we (of course) need the proxy,
  860. ;but we also need the name of the principal who created the proxy.
  861. ;
  862.  
  863. AuthTradeProxyForCredentialsPB RECORD 0
  864. qLink                     ds.l    1                ; offset: $0 (0)
  865. reserved1                 ds.l    1                ; offset: $4 (4)
  866. reserved2                 ds.l    1                ; offset: $8 (8)
  867. ioCompletion             ds.l    1                ; offset: $C (12)
  868. ioResult                 ds.w    1                ; offset: $10 (16)
  869. saveA5                     ds.l    1                ; offset: $12 (18)
  870. reqCode                     ds.w    1                ; offset: $16 (22)
  871. reserved                 ds.l    2                ; offset: $18 (24)
  872. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  873. dsRefNum                 ds.w    1                ; offset: $24 (36)
  874. callID                     ds.l    1                ; offset: $26 (38)
  875. identity                 ds.l    1                ; offset: $2A (42)
  876. gReserved1                 ds.l    1                ; offset: $2E (46)
  877. gReserved2                 ds.l    1                ; offset: $32 (50)
  878. gReserved3                 ds.l    1                ; offset: $36 (54)
  879. clientData                 ds.l    1                ; offset: $3A (58)
  880. userIdentity             ds.l    1                ; offset: $3E (62)        ;   --> identity of intermediary 
  881. recipient                 ds.l    1                ; offset: $42 (66)        ;   --> OCE name of recipient 
  882. sessionKey                 ds.l    1                ; offset: $46 (70)        ;  <--  session key 
  883. expiry                     ds.l    1                ; offset: $4A (74)        ;  <--> desired/actual expiry 
  884. credentialsLength         ds.l    1                ; offset: $4E (78)        ;  <--> max/actual credentials size 
  885. credentials                 ds.l    1                ; offset: $52 (82)        ;  <--> buffer where credentials are returned 
  886. proxyLength                 ds.l    1                ; offset: $56 (86)        ;   --> actual proxy size 
  887. proxy                     ds.l    1                ; offset: $5A (90)        ;   --> buffer containing proxy 
  888. principal                 ds.l    1                ; offset: $5E (94)        ;   --> RecordID of principal 
  889. sizeof                     EQU *                    ; size:   $62 (98)
  890.                         ENDR
  891. ;  API for Local Identity Interface 
  892. ;AuthGetLocalIdentityPB:
  893. ;A Collaborative application intended to work under the umbrella of LocalIdentity
  894. ;for the OCE toolbox will have to make this call to obtain LocalIdentity.
  895. ;If LocalIdentity has not been setup, then application will get
  896. ;'kOCEOCESetupRequired.'. In this case application should put the dialog
  897. ;recommended by the OCE Setup document and guide the user through OCE Setup.
  898. ;If the OCESetup contains local identity, but user has not unlocked, it will get
  899. ;kOCELocalAuthenticationFail. In this case application should use SDPPromptForLocalIdentity
  900. ;to prompt user for the password.
  901. ;If a backGround application or stand alone code requires LocalIdentity, if it gets the
  902. ;OSErr from LocalIdentity and can not call SDPPromptForLocalIdentity, it should it self
  903. ;register with the toolbox using kAuthAddToLocalIdentityQueue call. It will be notified
  904. ;when a LocalIdentity gets created by a foreground application.
  905. ;
  906.  
  907. AuthGetLocalIdentityPB    RECORD 0
  908. qLink                     ds.l    1                ; offset: $0 (0)
  909. reserved1                 ds.l    1                ; offset: $4 (4)
  910. reserved2                 ds.l    1                ; offset: $8 (8)
  911. ioCompletion             ds.l    1                ; offset: $C (12)
  912. ioResult                 ds.w    1                ; offset: $10 (16)
  913. saveA5                     ds.l    1                ; offset: $12 (18)
  914. reqCode                     ds.w    1                ; offset: $16 (22)
  915. reserved                 ds.l    2                ; offset: $18 (24)
  916. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  917. dsRefNum                 ds.w    1                ; offset: $24 (36)
  918. callID                     ds.l    1                ; offset: $26 (38)
  919. identity                 ds.l    1                ; offset: $2A (42)
  920. gReserved1                 ds.l    1                ; offset: $2E (46)
  921. gReserved2                 ds.l    1                ; offset: $32 (50)
  922. gReserved3                 ds.l    1                ; offset: $36 (54)
  923. clientData                 ds.l    1                ; offset: $3A (58)
  924. theLocalIdentity         ds.l    1                ; offset: $3E (62)        ;  <--  LocalIdentity 
  925. sizeof                     EQU *                    ; size:   $42 (66)
  926.                         ENDR
  927. ;kAuthUnlockLocalIdentity:
  928. ;The LocalIdentity can be created using this call.
  929. ;The userName and password correspond to the LocalIdentity setup.
  930. ;If the password matches, then collabIdentity will be returned.
  931. ;Typically SDPPromptForLocalIdentity call will make this call.
  932. ;All applications which are registered through kAuthAddToLocalIdentityQueue
  933. ;will be notified.
  934. ;
  935.  
  936. AuthUnlockLocalIdentityPB RECORD 0
  937. qLink                     ds.l    1                ; offset: $0 (0)
  938. reserved1                 ds.l    1                ; offset: $4 (4)
  939. reserved2                 ds.l    1                ; offset: $8 (8)
  940. ioCompletion             ds.l    1                ; offset: $C (12)
  941. ioResult                 ds.w    1                ; offset: $10 (16)
  942. saveA5                     ds.l    1                ; offset: $12 (18)
  943. reqCode                     ds.w    1                ; offset: $16 (22)
  944. reserved                 ds.l    2                ; offset: $18 (24)
  945. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  946. dsRefNum                 ds.w    1                ; offset: $24 (36)
  947. callID                     ds.l    1                ; offset: $26 (38)
  948. identity                 ds.l    1                ; offset: $2A (42)
  949. gReserved1                 ds.l    1                ; offset: $2E (46)
  950. gReserved2                 ds.l    1                ; offset: $32 (50)
  951. gReserved3                 ds.l    1                ; offset: $36 (54)
  952. clientData                 ds.l    1                ; offset: $3A (58)
  953. theLocalIdentity         ds.l    1                ; offset: $3E (62)        ;  <--  LocalIdentity 
  954. userName                 ds.l    1                ; offset: $42 (66)        ;   --> userName 
  955. password                 ds.l    1                ; offset: $46 (70)        ;   -->user password 
  956. sizeof                     EQU *                    ; size:   $4A (74)
  957.                         ENDR
  958. ;kAuthLockLocalIdentity:
  959. ;With this call existing LocalIdentity can be locked. If the ASDeleteLocalIdetity
  960. ;call fails with 'kOCEOperationDenied' error, name will contain the application which
  961. ;denied the operation. This name will be supplied by the application
  962. ;when it registered through kAuthAddToLocalIdentityQueue call
  963. ;
  964.  
  965. AuthLockLocalIdentityPB    RECORD 0
  966. qLink                     ds.l    1                ; offset: $0 (0)
  967. reserved1                 ds.l    1                ; offset: $4 (4)
  968. reserved2                 ds.l    1                ; offset: $8 (8)
  969. ioCompletion             ds.l    1                ; offset: $C (12)
  970. ioResult                 ds.w    1                ; offset: $10 (16)
  971. saveA5                     ds.l    1                ; offset: $12 (18)
  972. reqCode                     ds.w    1                ; offset: $16 (22)
  973. reserved                 ds.l    2                ; offset: $18 (24)
  974. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  975. dsRefNum                 ds.w    1                ; offset: $24 (36)
  976. callID                     ds.l    1                ; offset: $26 (38)
  977. identity                 ds.l    1                ; offset: $2A (42)
  978. gReserved1                 ds.l    1                ; offset: $2E (46)
  979. gReserved2                 ds.l    1                ; offset: $32 (50)
  980. gReserved3                 ds.l    1                ; offset: $36 (54)
  981. clientData                 ds.l    1                ; offset: $3A (58)
  982. theLocalIdentity         ds.l    1                ; offset: $3E (62)        ;   --> LocalIdentity 
  983. name                     ds.l    1                ; offset: $42 (66)        ;  <--  name of the app which denied delete 
  984. sizeof                     EQU *                    ; size:   $46 (70)
  985.                         ENDR
  986. ; typedef NotificationUPP                 NotificationProc
  987.  
  988. ;kAuthAddToLocalIdentityQueue:
  989. ;An application requiring notification of locking/unlocking of the
  990. ;LocalIdentity can install itself using this call. The function provided
  991. ;in 'notifyProc' will be called whenever the requested event happens.
  992. ;When an AuthLockLocalIdentity call is made to the toolbox, the notificationProc
  993. ;will be called with 'kAuthLockPending'. The application may refuse the lock by returning
  994. ;a 'true' value. If all the registered entries return 'false' value, locking will be done
  995. ;successfully. Otherwise 'kOCEOperationDenied' error is returned to the caller. The appName
  996. ;(registered with the notificationProc) of the application which denied locking is also
  997. ;returned to the caller making the AuthLockIdentity call.
  998. ;
  999.  
  1000. AuthAddToLocalIdentityQueuePB RECORD 0
  1001. qLink                     ds.l    1                ; offset: $0 (0)
  1002. reserved1                 ds.l    1                ; offset: $4 (4)
  1003. reserved2                 ds.l    1                ; offset: $8 (8)
  1004. ioCompletion             ds.l    1                ; offset: $C (12)
  1005. ioResult                 ds.w    1                ; offset: $10 (16)
  1006. saveA5                     ds.l    1                ; offset: $12 (18)
  1007. reqCode                     ds.w    1                ; offset: $16 (22)
  1008. reserved                 ds.l    2                ; offset: $18 (24)
  1009. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1010. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1011. callID                     ds.l    1                ; offset: $26 (38)
  1012. identity                 ds.l    1                ; offset: $2A (42)
  1013. gReserved1                 ds.l    1                ; offset: $2E (46)
  1014. gReserved2                 ds.l    1                ; offset: $32 (50)
  1015. gReserved3                 ds.l    1                ; offset: $36 (54)
  1016. clientData                 ds.l    1                ; offset: $3A (58)
  1017. notifyProc                 ds.l    1                ; offset: $3E (62)        ;   --> notification procedure 
  1018. notifyFlags                 ds.l    1                ; offset: $42 (66)        ;   --> notifyFlags 
  1019. appName                     ds.l    1                ; offset: $46 (70)        ;   --> name of application to be returned in Delete/Stop 
  1020. sizeof                     EQU *                    ; size:   $4A (74)
  1021.                         ENDR
  1022. ;kAuthRemoveFromLocalIdentityQueue:
  1023. AuthRemoveFromLocalIdentityQueuePB RECORD 0
  1024. qLink                     ds.l    1                ; offset: $0 (0)
  1025. reserved1                 ds.l    1                ; offset: $4 (4)
  1026. reserved2                 ds.l    1                ; offset: $8 (8)
  1027. ioCompletion             ds.l    1                ; offset: $C (12)
  1028. ioResult                 ds.w    1                ; offset: $10 (16)
  1029. saveA5                     ds.l    1                ; offset: $12 (18)
  1030. reqCode                     ds.w    1                ; offset: $16 (22)
  1031. reserved                 ds.l    2                ; offset: $18 (24)
  1032. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1033. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1034. callID                     ds.l    1                ; offset: $26 (38)
  1035. identity                 ds.l    1                ; offset: $2A (42)
  1036. gReserved1                 ds.l    1                ; offset: $2E (46)
  1037. gReserved2                 ds.l    1                ; offset: $32 (50)
  1038. gReserved3                 ds.l    1                ; offset: $36 (54)
  1039. clientData                 ds.l    1                ; offset: $3A (58)
  1040. notifyProc                 ds.l    1                ; offset: $3E (62)        ;   --> notification procedure 
  1041. sizeof                     EQU *                    ; size:   $42 (66)
  1042.                         ENDR
  1043. ;kAuthSetupLocalIdentity:
  1044. ;The LocalIdentity can be Setup using this call.
  1045. ;The userName and password correspond to the LocalIdentity setup.
  1046. ;If a LocalIdentity Setup already exists 'kOCELocalIdentitySetupExists' error
  1047. ;will be returned.
  1048. ;
  1049.  
  1050. AuthSetupLocalIdentityPB RECORD 0
  1051. qLink                     ds.l    1                ; offset: $0 (0)
  1052. reserved1                 ds.l    1                ; offset: $4 (4)
  1053. reserved2                 ds.l    1                ; offset: $8 (8)
  1054. ioCompletion             ds.l    1                ; offset: $C (12)
  1055. ioResult                 ds.w    1                ; offset: $10 (16)
  1056. saveA5                     ds.l    1                ; offset: $12 (18)
  1057. reqCode                     ds.w    1                ; offset: $16 (22)
  1058. reserved                 ds.l    2                ; offset: $18 (24)
  1059. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1060. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1061. callID                     ds.l    1                ; offset: $26 (38)
  1062. identity                 ds.l    1                ; offset: $2A (42)
  1063. gReserved1                 ds.l    1                ; offset: $2E (46)
  1064. gReserved2                 ds.l    1                ; offset: $32 (50)
  1065. gReserved3                 ds.l    1                ; offset: $36 (54)
  1066. clientData                 ds.l    1                ; offset: $3A (58)
  1067. aReserved                 ds.l    1                ; offset: $3E (62)        ;   --  
  1068. userName                 ds.l    1                ; offset: $42 (66)        ;   --> userName 
  1069. password                 ds.l    1                ; offset: $46 (70)        ;   -->user password 
  1070. sizeof                     EQU *                    ; size:   $4A (74)
  1071.                         ENDR
  1072. ;kAuthChangeLocalIdentity:
  1073. ;An existing LocalIdentity  Setup can be changed using this call.
  1074. ;The userName and password correspond to the LocalIdentity setup.
  1075. ;If a LocalIdentity Setup does not exists 'kOCEOCESetupRequired' error
  1076. ;will be returned. The user can use  kAuthSetupLocalIdentity call to setit up.
  1077. ;If the 'password' does not correspond to the existing setup, 'kOCELocalAuthenticationFail'
  1078. ;OSErr will be returned. If successful, LocalID will have new name as 'userName' and
  1079. ;password as 'newPassword' and if any applications has installed into 
  1080. ;LocalIdentityQueue with kNotifyNameChangeMask set, it will be notified with 
  1081. ;kAuthLocalIdentityNameChangeOp action value. 
  1082. ;
  1083. ;
  1084.  
  1085. AuthChangeLocalIdentityPB RECORD 0
  1086. qLink                     ds.l    1                ; offset: $0 (0)
  1087. reserved1                 ds.l    1                ; offset: $4 (4)
  1088. reserved2                 ds.l    1                ; offset: $8 (8)
  1089. ioCompletion             ds.l    1                ; offset: $C (12)
  1090. ioResult                 ds.w    1                ; offset: $10 (16)
  1091. saveA5                     ds.l    1                ; offset: $12 (18)
  1092. reqCode                     ds.w    1                ; offset: $16 (22)
  1093. reserved                 ds.l    2                ; offset: $18 (24)
  1094. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1095. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1096. callID                     ds.l    1                ; offset: $26 (38)
  1097. identity                 ds.l    1                ; offset: $2A (42)
  1098. gReserved1                 ds.l    1                ; offset: $2E (46)
  1099. gReserved2                 ds.l    1                ; offset: $32 (50)
  1100. gReserved3                 ds.l    1                ; offset: $36 (54)
  1101. clientData                 ds.l    1                ; offset: $3A (58)
  1102. aReserved                 ds.l    1                ; offset: $3E (62)        ;   --  
  1103. userName                 ds.l    1                ; offset: $42 (66)        ;   --> userName 
  1104. password                 ds.l    1                ; offset: $46 (70)        ;   --> current password 
  1105. newPassword                 ds.l    1                ; offset: $4A (74)        ;   --> new password 
  1106. sizeof                     EQU *                    ; size:   $4E (78)
  1107.                         ENDR
  1108. ;kAuthRemoveLocalIdentity:
  1109. ;An existing LocalIdentity  Setup can be removed using this call.
  1110. ;The userName and password correspond to the LocalIdentity setup.
  1111. ;If a LocalIdentity Setup does not exists 'kOCEOCESetupRequired' error
  1112. ;will be returned.
  1113. ;If the 'password' does not correspond to the existing setup, 'kOCELocalAuthenticationFail'
  1114. ;OSErr will be returned. If successful, LocalIdentity will be removed from the OCE Setup.
  1115. ;This is a very distructive operation, user must be warned enough before actually making
  1116. ;this call.
  1117. ;
  1118.  
  1119. AuthRemoveLocalIdentityPB RECORD 0
  1120. qLink                     ds.l    1                ; offset: $0 (0)
  1121. reserved1                 ds.l    1                ; offset: $4 (4)
  1122. reserved2                 ds.l    1                ; offset: $8 (8)
  1123. ioCompletion             ds.l    1                ; offset: $C (12)
  1124. ioResult                 ds.w    1                ; offset: $10 (16)
  1125. saveA5                     ds.l    1                ; offset: $12 (18)
  1126. reqCode                     ds.w    1                ; offset: $16 (22)
  1127. reserved                 ds.l    2                ; offset: $18 (24)
  1128. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1129. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1130. callID                     ds.l    1                ; offset: $26 (38)
  1131. identity                 ds.l    1                ; offset: $2A (42)
  1132. gReserved1                 ds.l    1                ; offset: $2E (46)
  1133. gReserved2                 ds.l    1                ; offset: $32 (50)
  1134. gReserved3                 ds.l    1                ; offset: $36 (54)
  1135. clientData                 ds.l    1                ; offset: $3A (58)
  1136. aReserved                 ds.l    1                ; offset: $3E (62)        ;   --  
  1137. userName                 ds.l    1                ; offset: $42 (66)        ;   --> userName 
  1138. password                 ds.l    1                ; offset: $46 (70)        ;   --> current password 
  1139. sizeof                     EQU *                    ; size:   $4A (74)
  1140.                         ENDR
  1141. ;kOCESetupAddDirectoryInfo:
  1142. ;Using this call identity for a catalog can be setup under LocalIdentity umbrella.
  1143. ;ASCreateLocalIdentity should have been done succesfully before making this call.    
  1144. ;directoryRecordCID -> is the record creationID obtained when DirAddOCEDirectory or
  1145. ;DirAddDSAMDirectory call was made.
  1146. ;rid-> is the recordID in which the identity for the catalog will be established.
  1147. ;password-> the password associated with the rid in the catalog world.
  1148. ;
  1149.  
  1150. OCESetupAddDirectoryInfoPB RECORD 0
  1151. qLink                     ds.l    1                ; offset: $0 (0)
  1152. reserved1                 ds.l    1                ; offset: $4 (4)
  1153. reserved2                 ds.l    1                ; offset: $8 (8)
  1154. ioCompletion             ds.l    1                ; offset: $C (12)
  1155. ioResult                 ds.w    1                ; offset: $10 (16)
  1156. saveA5                     ds.l    1                ; offset: $12 (18)
  1157. reqCode                     ds.w    1                ; offset: $16 (22)
  1158. reserved                 ds.l    2                ; offset: $18 (24)
  1159. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1160. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1161. callID                     ds.l    1                ; offset: $26 (38)
  1162. identity                 ds.l    1                ; offset: $2A (42)
  1163. gReserved1                 ds.l    1                ; offset: $2E (46)
  1164. gReserved2                 ds.l    1                ; offset: $32 (50)
  1165. gReserved3                 ds.l    1                ; offset: $36 (54)
  1166. clientData                 ds.l    1                ; offset: $3A (58)
  1167. directoryRecordCID         ds        CreationID        ; offset: $3E (62)        ;   --> CreationID for the catalog 
  1168. recordID                 ds.l    1                ; offset: $46 (70)        ;   --> recordID for the identity 
  1169. password                 ds.l    1                ; offset: $4A (74)        ;   --> password in the catalog world 
  1170. sizeof                     EQU *                    ; size:   $4E (78)
  1171.                         ENDR
  1172. ;kOCESetupChangeDirectoryInfo:
  1173. ;Using this call an existing identity for a catalog under LocalIdentity umbrella
  1174. ;can be changed.
  1175. ;ASCreateLocalIdentity should have been done succesfully before making this call.
  1176. ;directoryRecordCID -> is the record creationID obtained when DirAddOCEDirectory or
  1177. ;DirAddDSAMDirectory call was made.
  1178. ;rid-> is the recordID in which the identity for the catalog will be established.
  1179. ;password-> the password associated with the rid in the catalog world.
  1180. ;newPassword -> the new password for the catalog
  1181. ;
  1182.  
  1183. OCESetupChangeDirectoryInfoPB RECORD 0
  1184. qLink                     ds.l    1                ; offset: $0 (0)
  1185. reserved1                 ds.l    1                ; offset: $4 (4)
  1186. reserved2                 ds.l    1                ; offset: $8 (8)
  1187. ioCompletion             ds.l    1                ; offset: $C (12)
  1188. ioResult                 ds.w    1                ; offset: $10 (16)
  1189. saveA5                     ds.l    1                ; offset: $12 (18)
  1190. reqCode                     ds.w    1                ; offset: $16 (22)
  1191. reserved                 ds.l    2                ; offset: $18 (24)
  1192. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1193. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1194. callID                     ds.l    1                ; offset: $26 (38)
  1195. identity                 ds.l    1                ; offset: $2A (42)
  1196. gReserved1                 ds.l    1                ; offset: $2E (46)
  1197. gReserved2                 ds.l    1                ; offset: $32 (50)
  1198. gReserved3                 ds.l    1                ; offset: $36 (54)
  1199. clientData                 ds.l    1                ; offset: $3A (58)
  1200. directoryRecordCID         ds        CreationID        ; offset: $3E (62)        ;   --> CreationID for the catalog 
  1201. recordID                 ds.l    1                ; offset: $46 (70)        ;   --> recordID for the identity 
  1202. password                 ds.l    1                ; offset: $4A (74)        ;   --> password in the catalog world 
  1203. newPassword                 ds.l    1                ; offset: $4E (78)        ;   --> new password in the catalog 
  1204. sizeof                     EQU *                    ; size:   $52 (82)
  1205.                         ENDR
  1206. ;kOCESetupRemoveDirectoryInfo:
  1207. ;Using this call an existing identity for a catalog under LocalIdentity umbrella
  1208. ;can be changed.
  1209. ;ASCreateLocalIdentity should have been done succesfully before making this call.
  1210. ;directoryRecordCID -> is the record creationID obtained when DirAddOCEDirectory or
  1211. ;
  1212.  
  1213. OCESetupRemoveDirectoryInfoPB RECORD 0
  1214. qLink                     ds.l    1                ; offset: $0 (0)
  1215. reserved1                 ds.l    1                ; offset: $4 (4)
  1216. reserved2                 ds.l    1                ; offset: $8 (8)
  1217. ioCompletion             ds.l    1                ; offset: $C (12)
  1218. ioResult                 ds.w    1                ; offset: $10 (16)
  1219. saveA5                     ds.l    1                ; offset: $12 (18)
  1220. reqCode                     ds.w    1                ; offset: $16 (22)
  1221. reserved                 ds.l    2                ; offset: $18 (24)
  1222. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1223. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1224. callID                     ds.l    1                ; offset: $26 (38)
  1225. identity                 ds.l    1                ; offset: $2A (42)
  1226. gReserved1                 ds.l    1                ; offset: $2E (46)
  1227. gReserved2                 ds.l    1                ; offset: $32 (50)
  1228. gReserved3                 ds.l    1                ; offset: $36 (54)
  1229. clientData                 ds.l    1                ; offset: $3A (58)
  1230. directoryRecordCID         ds        CreationID        ; offset: $3E (62)        ;   --> CreationID for the catalog 
  1231. sizeof                     EQU *                    ; size:   $46 (70)
  1232.                         ENDR
  1233. ;kOCESetupGetDirectoryInfo:
  1234. ;Using this call info on an existing identity for a particular catalog under LocalIdentity umbrella
  1235. ;can be obtained.
  1236. ;For the specified catalog 'directoryName' and 'discriminator', rid and nativeName will
  1237. ;returned. Caller must provide appropriate buffer to get back rid and nativeName.
  1238. ;'password' will be returned  for  non-ADAP Catalogs.
  1239. ;
  1240.  
  1241. OCESetupGetDirectoryInfoPB RECORD 0
  1242. qLink                     ds.l    1                ; offset: $0 (0)
  1243. reserved1                 ds.l    1                ; offset: $4 (4)
  1244. reserved2                 ds.l    1                ; offset: $8 (8)
  1245. ioCompletion             ds.l    1                ; offset: $C (12)
  1246. ioResult                 ds.w    1                ; offset: $10 (16)
  1247. saveA5                     ds.l    1                ; offset: $12 (18)
  1248. reqCode                     ds.w    1                ; offset: $16 (22)
  1249. reserved                 ds.l    2                ; offset: $18 (24)
  1250. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1251. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1252. callID                     ds.l    1                ; offset: $26 (38)
  1253. identity                 ds.l    1                ; offset: $2A (42)
  1254. gReserved1                 ds.l    1                ; offset: $2E (46)
  1255. gReserved2                 ds.l    1                ; offset: $32 (50)
  1256. gReserved3                 ds.l    1                ; offset: $36 (54)
  1257. clientData                 ds.l    1                ; offset: $3A (58)
  1258. directoryName             ds.l    1                ; offset: $3E (62)        ;   --> catalog name 
  1259. discriminator             ds        DirDiscriminator ; offset: $42 (66)        ;   --> discriminator for the catalog 
  1260. recordID                 ds.l    1                ; offset: $4A (74)        ;  <--  rid for the catalog identity 
  1261. nativeName                 ds.l    1                ; offset: $4E (78)        ;  <--  user name in the catalog world 
  1262. password                 ds.l    1                ; offset: $52 (82)        ;  <--  password in the catalog world 
  1263. sizeof                     EQU *                    ; size:   $56 (86)
  1264.                         ENDR
  1265. ; *****************************************************************************
  1266. ;
  1267. ;
  1268. ;         Catalog Manager operations
  1269. ;
  1270. ;
  1271. ;****************************************************************************
  1272.  
  1273.  
  1274.  
  1275. ; typedef DirParamBlock *                DirParamBlockPtr
  1276.  
  1277. ;  AddRecord 
  1278. DirAddRecordPB            RECORD 0
  1279. qLink                     ds.l    1                ; offset: $0 (0)
  1280. reserved1                 ds.l    1                ; offset: $4 (4)
  1281. reserved2                 ds.l    1                ; offset: $8 (8)
  1282. ioCompletion             ds.l    1                ; offset: $C (12)
  1283. ioResult                 ds.w    1                ; offset: $10 (16)
  1284. saveA5                     ds.l    1                ; offset: $12 (18)
  1285. reqCode                     ds.w    1                ; offset: $16 (22)
  1286. reserved                 ds.l    2                ; offset: $18 (24)
  1287. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1288. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1289. callID                     ds.l    1                ; offset: $26 (38)
  1290. identity                 ds.l    1                ; offset: $2A (42)
  1291. gReserved1                 ds.l    1                ; offset: $2E (46)
  1292. gReserved2                 ds.l    1                ; offset: $32 (50)
  1293. gReserved3                 ds.l    1                ; offset: $36 (54)
  1294. clientData                 ds.l    1                ; offset: $3A (58)
  1295. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> CreationID returned here 
  1296. allowDuplicate             ds.b    1                ; offset: $42 (66)        ;   --> 
  1297. filler1                     ds.b    1                ; offset: $43 (67)
  1298. sizeof                     EQU *                    ; size:   $44 (68)
  1299.                         ENDR
  1300.  
  1301.  
  1302. ;  DeleteRecord 
  1303. DirDeleteRecordPB        RECORD 0
  1304. qLink                     ds.l    1                ; offset: $0 (0)
  1305. reserved1                 ds.l    1                ; offset: $4 (4)
  1306. reserved2                 ds.l    1                ; offset: $8 (8)
  1307. ioCompletion             ds.l    1                ; offset: $C (12)
  1308. ioResult                 ds.w    1                ; offset: $10 (16)
  1309. saveA5                     ds.l    1                ; offset: $12 (18)
  1310. reqCode                     ds.w    1                ; offset: $16 (22)
  1311. reserved                 ds.l    2                ; offset: $18 (24)
  1312. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1313. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1314. callID                     ds.l    1                ; offset: $26 (38)
  1315. identity                 ds.l    1                ; offset: $2A (42)
  1316. gReserved1                 ds.l    1                ; offset: $2E (46)
  1317. gReserved2                 ds.l    1                ; offset: $32 (50)
  1318. gReserved3                 ds.l    1                ; offset: $36 (54)
  1319. clientData                 ds.l    1                ; offset: $3A (58)
  1320. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  1321. sizeof                     EQU *                    ; size:   $42 (66)
  1322.                         ENDR
  1323. ;  aRecord must contain valid PackedRLI and a CreationID. 
  1324.  
  1325.  
  1326. ; *********************************************************************************
  1327. ;DirEnumerate:
  1328. ;This call can be used to enumerate both DNodes and records under a specified
  1329. ;DNode. A DNode is specified by the PackedRLIPtr 'aRLI'.
  1330. ;
  1331. ;startingPoint indicates where to start the enumeration.  Initially,
  1332. ;it should be set to a value of nil.  After some records are enumerated,
  1333. ;the client can issue the call again with the same aRLI and recordName and
  1334. ;typeList. The last received DirEnumSpec in the startingPoint field.  The server
  1335. ;will continue the enumeration from that record on. if user wants to get back the
  1336. ;value specified in the startingRecord also, the Boolean 'includeStartingPoint'
  1337. ;must be set to 'true'. If this is set to 'false', records specified after the
  1338. ;startingPoint record will be returned.
  1339. ;
  1340. ;sortBy indicates to the server to return the records that match in name-first
  1341. ;or type-first order.  sortDirection indicates to the server to search in forward
  1342. ;or backward sort order for RecordIDs Specified.
  1343. ;
  1344. ;RecordIDS and Enumeration Criteria:
  1345. ;
  1346. ;PackedRLIPtr parameter 'aRLI' will be accepted for DNode
  1347. ;specification.
  1348. ;
  1349. ;One RStringPtr 'nameMatchString' is provided. User is allowed to
  1350. ;specify a wild card in the name. WildCard specification is specified in 
  1351. ;matchNameHow parameter and possible values are defined in DirMatchWith Enum.
  1352. ;
  1353. ;'typeCount' parameter indicate how many types are in the 'typeList'.
  1354. ;
  1355. ;'typeList' parmeter is a pointer to an RString array of size 'typeCount'.
  1356. ;
  1357. ;If 'typeCount' is exactly equal to one, a wild card can be specified
  1358. ;for the entity type; otherwise types have to be completely specified.
  1359. ;WildCard specification is specified in  matchNameHow parameter
  1360. ; and possible values are defined in DirMatchWith Enum.
  1361. ;
  1362. ;
  1363. ;A nil value for 'startingPoint' is allowed when sortDirection specified
  1364. ;is 'kSortBackwards'. This was not allowed previously.
  1365. ;
  1366. ;'enumFlags' parameter is a bit field. The following bits can be set:
  1367. ;    kEnumDistinguishedNameMask to get back records in the cluster data base.
  1368. ;    kEnumAliasMask to get back record aliases
  1369. ;    kEnumPseudonymMask to get back record pseudonyms
  1370. ;    kEnumDNodeMask to get back any children dNodes for the DNode specified in the
  1371. ;    'aRLI' parameter.
  1372. ;    kEnumForeignDNodeMask to get back any children dNodes which have ForeignDnodes in the
  1373. ;    dNode specified in the 'aRLI' parameter.
  1374. ;
  1375. ;    kEnumAll is combination of all five values and can be used to enumerate
  1376. ;    everything under a specified DNode.
  1377. ;
  1378. ;
  1379. ;
  1380. ;The results returned for each element will consist of a DirEnumSpec.
  1381. ;The DirEnumSpec contains 'enumFlag' which indicates the type of entity and a
  1382. ;union which will have either DNodeID or LocalRecordID depending on the value of 'enumFlag'.
  1383. ;The 'enumFlag'  will indicate whether the returned element is a
  1384. ;record(kEnumDistinguishedNameMask bit) or a alias(kEnumAliasMask bit) or a
  1385. ;Pseudonym(kEnumPseudonymMask) or a child DNode(kEnumDNodeMask bit).  If the 'enumFlag' value
  1386. ;is kEnumDnodeMask, it indicates the value returned in the union is a DNodeID (i.e. 'dNodeNumber'
  1387. ;is the 'dNodeNumber' of the child dnode(if the catalog supports dNodeNumbers, otherwise
  1388. ;this will be set to zero). The name will be the child dnode name. For other values of the
  1389. ;'enumFlag', the value in the union will be LocalRecordID. In addition to kEnumDnodeMask it is
  1390. ;possible that kEnumForeignDNodeMask is also set. This is an advisory bit and application must make
  1391. ;it's own decision before displaying these records. If catalog supports kSupportIndexRatioMask, it
  1392. ;may also return the relative position of the record (percentile of total records) in the 
  1393. ;indexRatio field in EnumSpec.
  1394. ;
  1395. ;
  1396. ;responseSLRV will contain the script, language, region and version of the oce sorting software.
  1397. ;The results will be collected in the 'getBuffer' supplied by the user.
  1398. ;If buffer can not hold all the data returned 'kOCEMoreData' error will be returned.
  1399. ;
  1400. ;If user receives 'noErr' or 'kOCEMoreData', buffer will contain valid results. A user
  1401. ;can extract the results in the 'getBuffer' by making DirEnumerateParse' call.
  1402. ;
  1403.  
  1404.  
  1405. DirEnumerateGetPB        RECORD 0
  1406. qLink                     ds.l    1                ; offset: $0 (0)
  1407. reserved1                 ds.l    1                ; offset: $4 (4)
  1408. reserved2                 ds.l    1                ; offset: $8 (8)
  1409. ioCompletion             ds.l    1                ; offset: $C (12)
  1410. ioResult                 ds.w    1                ; offset: $10 (16)
  1411. saveA5                     ds.l    1                ; offset: $12 (18)
  1412. reqCode                     ds.w    1                ; offset: $16 (22)
  1413. reserved                 ds.l    2                ; offset: $18 (24)
  1414. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1415. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1416. callID                     ds.l    1                ; offset: $26 (38)
  1417. identity                 ds.l    1                ; offset: $2A (42)
  1418. gReserved1                 ds.l    1                ; offset: $2E (46)
  1419. gReserved2                 ds.l    1                ; offset: $32 (50)
  1420. gReserved3                 ds.l    1                ; offset: $36 (54)
  1421. clientData                 ds.l    1                ; offset: $3A (58)
  1422. aRLI                     ds.l    1                ; offset: $3E (62)        ;   --> an RLI specifying the cluster to be enumerated 
  1423. startingPoint             ds.l    1                ; offset: $42 (66)        ;   --> 
  1424. sortBy                     ds.w    1                ; offset: $46 (70)        ;   --> 
  1425. sortDirection             ds.w    1                ; offset: $48 (72)        ;   --> 
  1426. dReserved                 ds.l    1                ; offset: $4A (74)        ;   --  
  1427. nameMatchString             ds.l    1                ; offset: $4E (78)        ;   --> name from which enumeration should start 
  1428. typesList                 ds.l    1                ; offset: $52 (82)        ;   --> list of entity types to be enumerated 
  1429. typeCount                 ds.l    1                ; offset: $56 (86)        ;   --> number of types in the list 
  1430. enumFlags                 ds.l    1                ; offset: $5A (90)        ;   --> indicates what to enumerate 
  1431. includeStartingPoint     ds.b    1                ; offset: $5E (94)        ;   --> if true return the record specified in starting point 
  1432. padByte                     ds.b    1                ; offset: $5F (95)
  1433. matchNameHow             ds.b    1                ; offset: $60 (96)        ;   --> Matching Criteria for nameMatchString 
  1434. matchTypeHow             ds.b    1                ; offset: $61 (97)        ;   --> Matching Criteria for typeList 
  1435. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  1436. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  1437. responseSLRV             ds        SLRV            ; offset: $6A (106)        ;   <--  response SLRV 
  1438. sizeof                     EQU *                    ; size:   $72 (114)
  1439.                         ENDR
  1440. ;  The EnumerateRecords call-back function is defined as follows: 
  1441. ; typedef ForEachDirEnumSpecUPP         ForEachDirEnumSpec
  1442.  
  1443. ;EnumerateParse:
  1444. ;After an EnumerateGet call has completed, call EnumerateParse
  1445. ;to parse through the buffer that was filled in EnumerateGet.
  1446. ;
  1447. ;'eachEnumSpec' will be called each time to return to the client a
  1448. ;DirEnumSpec that matches the pattern for enumeration. 'enumFlag' indicates the type
  1449. ;of information returned in the DirEnumSpec
  1450. ;The clientData parameter that you pass in the parameter block will be passed
  1451. ;to 'forEachEnumDSSpecFunc'.  You are free to put anything in clientData - it is intended
  1452. ;to allow you some way to match the call-back to the original call (for
  1453. ;example, you make more then one aysynchronous EnumerateGet calls and you want to
  1454. ;associate returned results in some way).
  1455. ;
  1456. ;The client should return FALSE from 'eachEnumSpec' to continue
  1457. ;processing of the EnumerateParse request.  Returning TRUE will
  1458. ;terminate the EnumerateParse request.
  1459. ;
  1460. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  1461. ;of execution as the thread that made the EnumerateParse call.  That means that the
  1462. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  1463. ;that were in effect when the call was made.  Because of this, the call-back
  1464. ;routine has the same restrictions as the caller of EnumerateParse:
  1465. ;if EnumerateParse was not called from interrupt level, then the call-
  1466. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  1467. ;like a ioCompletion except that A5 will be preserved for the application.
  1468. ;
  1469.  
  1470. DirEnumerateParsePB        RECORD 0
  1471. qLink                     ds.l    1                ; offset: $0 (0)
  1472. reserved1                 ds.l    1                ; offset: $4 (4)
  1473. reserved2                 ds.l    1                ; offset: $8 (8)
  1474. ioCompletion             ds.l    1                ; offset: $C (12)
  1475. ioResult                 ds.w    1                ; offset: $10 (16)
  1476. saveA5                     ds.l    1                ; offset: $12 (18)
  1477. reqCode                     ds.w    1                ; offset: $16 (22)
  1478. reserved                 ds.l    2                ; offset: $18 (24)
  1479. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1480. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1481. callID                     ds.l    1                ; offset: $26 (38)
  1482. identity                 ds.l    1                ; offset: $2A (42)
  1483. gReserved1                 ds.l    1                ; offset: $2E (46)
  1484. gReserved2                 ds.l    1                ; offset: $32 (50)
  1485. gReserved3                 ds.l    1                ; offset: $36 (54)
  1486. clientData                 ds.l    1                ; offset: $3A (58)
  1487. aRLI                     ds.l    1                ; offset: $3E (62)        ;   --> an RLI specifying the cluster to be enumerated 
  1488. bReserved                 ds.l    1                ; offset: $42 (66)        ;   --  
  1489. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  1490. eachEnumSpec             ds.l    1                ; offset: $4A (74)        ;   --> 
  1491. eReserved                 ds.l    1                ; offset: $4E (78)        ;   --  
  1492. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  1493. gReserved                 ds.l    1                ; offset: $56 (86)        ;   --  
  1494. hReserved                 ds.l    1                ; offset: $5A (90)        ;   --  
  1495. iReserved                 ds.l    1                ; offset: $5E (94)        ;   --  
  1496. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  1497. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  1498. l1Reserved                 ds.w    1                ; offset: $6A (106)        ;   -- 
  1499. l2Reserved                 ds.w    1                ; offset: $6C (108)        ;   --  
  1500. l3Reserved                 ds.w    1                ; offset: $6E (110)        ;   -- 
  1501. l4Reserved                 ds.w    1                ; offset: $70 (112)        ;   --  
  1502. sizeof                     EQU *                    ; size:   $72 (114)
  1503.                         ENDR
  1504. ; * FindRecordGet operates similarly to DirEnumerate except it returns a list
  1505. ; * of records instead of records local to a cluster.
  1506. ;
  1507.  
  1508. DirFindRecordGetPB        RECORD 0
  1509. qLink                     ds.l    1                ; offset: $0 (0)
  1510. reserved1                 ds.l    1                ; offset: $4 (4)
  1511. reserved2                 ds.l    1                ; offset: $8 (8)
  1512. ioCompletion             ds.l    1                ; offset: $C (12)
  1513. ioResult                 ds.w    1                ; offset: $10 (16)
  1514. saveA5                     ds.l    1                ; offset: $12 (18)
  1515. reqCode                     ds.w    1                ; offset: $16 (22)
  1516. reserved                 ds.l    2                ; offset: $18 (24)
  1517. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1518. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1519. callID                     ds.l    1                ; offset: $26 (38)
  1520. identity                 ds.l    1                ; offset: $2A (42)
  1521. gReserved1                 ds.l    1                ; offset: $2E (46)
  1522. gReserved2                 ds.l    1                ; offset: $32 (50)
  1523. gReserved3                 ds.l    1                ; offset: $36 (54)
  1524. clientData                 ds.l    1                ; offset: $3A (58)
  1525. startingPoint             ds.l    1                ; offset: $3E (62)
  1526. reservedA                 ds.l    2                ; offset: $42 (66)
  1527. nameMatchString             ds.l    1                ; offset: $4A (74)
  1528. typesList                 ds.l    1                ; offset: $4E (78)
  1529. typeCount                 ds.l    1                ; offset: $52 (82)
  1530. reservedB                 ds.l    1                ; offset: $56 (86)
  1531. reservedC                 ds.w    1                ; offset: $5A (90)
  1532. matchNameHow             ds.b    1                ; offset: $5C (92)
  1533. matchTypeHow             ds.b    1                ; offset: $5D (93)
  1534. getBuffer                 ds.l    1                ; offset: $5E (94)
  1535. getBufferSize             ds.l    1                ; offset: $62 (98)
  1536. directoryName             ds.l    1                ; offset: $66 (102)
  1537. discriminator             ds        DirDiscriminator ; offset: $6A (106)
  1538. sizeof                     EQU *                    ; size:   $72 (114)
  1539.                         ENDR
  1540. ;  The FindRecordParse call-back function is defined as follows: 
  1541. ; typedef ForEachRecordUPP                 ForEachRecord
  1542.  
  1543. ; * This PB same as DirFindRecordGet except it includes the callback function
  1544. ;
  1545.  
  1546. DirFindRecordParsePB    RECORD 0
  1547. qLink                     ds.l    1                ; offset: $0 (0)
  1548. reserved1                 ds.l    1                ; offset: $4 (4)
  1549. reserved2                 ds.l    1                ; offset: $8 (8)
  1550. ioCompletion             ds.l    1                ; offset: $C (12)
  1551. ioResult                 ds.w    1                ; offset: $10 (16)
  1552. saveA5                     ds.l    1                ; offset: $12 (18)
  1553. reqCode                     ds.w    1                ; offset: $16 (22)
  1554. reserved                 ds.l    2                ; offset: $18 (24)
  1555. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1556. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1557. callID                     ds.l    1                ; offset: $26 (38)
  1558. identity                 ds.l    1                ; offset: $2A (42)
  1559. gReserved1                 ds.l    1                ; offset: $2E (46)
  1560. gReserved2                 ds.l    1                ; offset: $32 (50)
  1561. gReserved3                 ds.l    1                ; offset: $36 (54)
  1562. clientData                 ds.l    1                ; offset: $3A (58)
  1563. startingPoint             ds.l    1                ; offset: $3E (62)
  1564. reservedA                 ds.l    2                ; offset: $42 (66)
  1565. nameMatchString             ds.l    1                ; offset: $4A (74)
  1566. typesList                 ds.l    1                ; offset: $4E (78)
  1567. typeCount                 ds.l    1                ; offset: $52 (82)
  1568. reservedB                 ds.l    1                ; offset: $56 (86)
  1569. reservedC                 ds.w    1                ; offset: $5A (90)
  1570. matchNameHow             ds.b    1                ; offset: $5C (92)
  1571. matchTypeHow             ds.b    1                ; offset: $5D (93)
  1572. getBuffer                 ds.l    1                ; offset: $5E (94)
  1573. getBufferSize             ds.l    1                ; offset: $62 (98)
  1574. directoryName             ds.l    1                ; offset: $66 (102)
  1575. discriminator             ds        DirDiscriminator ; offset: $6A (106)
  1576. forEachRecordFunc         ds.l    1                ; offset: $72 (114)
  1577. sizeof                     EQU *                    ; size:   $76 (118)
  1578.                         ENDR
  1579.  
  1580.  
  1581. ;LookupGet:
  1582. ;
  1583. ;aRecordList is an array of pointers to RecordIDs, each of which must
  1584. ;contain valid PackedRLI and a CreationID.  recordIDCount is
  1585. ;the size of this array.
  1586. ;
  1587. ;attrTypeList is an array of pointers to AttributeTypes.  attrTypeCount is
  1588. ;the size of this array.
  1589. ;
  1590. ;staringRecordIndex is the record from which to continue the lookup.
  1591. ;If you want to start from first record in the list, this must be 1 (not zero).
  1592. ;This value must always be <= recordIDCount.
  1593. ;
  1594. ;startingAttributeIndex is the AttributeType from which we want to continue the lookup.
  1595. ;If you want to start from first attribute in the list, this must be 1 (not zero).
  1596. ;This value must always be <= attrTypeCount.
  1597. ;
  1598. ;startingAttribute is the value of the attribute value from which we want to
  1599. ;continue lookup. In case of catalogs supporting creationIDs, startingAttribute
  1600. ;may contain only a CID. Other catalogs may require the entire value.
  1601. ;If a non-null cid is given and if an attribute value with that cid is not found, this
  1602. ;call will terminate with kOCENoSuchAttribute error. A client should not make a LookupParse call
  1603. ;after getting this error.
  1604. ;
  1605. ;'includeStartingPoint' boolean can be set to 'true' to receive the value specified in the
  1606. ;startingPoint in the results returned. If this is set to 'false', the value
  1607. ;specified in the startingAttribute will not be returned.
  1608. ;
  1609. ;When LookupGet call fails with kOCEMoreData, the client will be able to find out where the call ended
  1610. ;with a subsequent LookupParse call. When the LookupParse call completes with kOCEMoreData,
  1611. ;lastRecordIndex, lastAttributeIndex and lastValueCID will point to the corresponding
  1612. ;recordID, attributeType and the CreationID of the last value returned successfully. These parameters
  1613. ;are exactly the same ones for the startingRecordIndex, startingAttributeIndex, and startingAttrValueCID
  1614. ;so they can be used in a subsequent LookupGet call to continue the lookup.
  1615. ;
  1616. ;In an extreme case, It is possible that we had an attribute value that is too large to fit
  1617. ;in the client's buffer. In such cases, if it was the only thing that we tried to fit
  1618. ;into the buffer, the client will not able to proceed further because he will not know the
  1619. ;attributeCID of the attribute to continue with.  Also he does not know how big a buffer
  1620. ;would be needed for the next call to get this 'mondo' attribute value successfully.
  1621. ;
  1622. ;to support this, LookupParse call will do the following:
  1623. ;
  1624. ;If LookupGet has failed with kOCEMoreData error, LookupParse will check to make sure that
  1625. ;ForEachAttributeValueFunc has been called at least once. If so, the client has the option
  1626. ;to continue from that attribute CreationID (for PAB/ADAP) in the next LookupGet call.
  1627. ;However, if it was not even called once, then the attribute value may be too big to fit in the
  1628. ;user's buffer. In this case, lastAttrValueCID (lastAttribute) and attrSize are returned in the
  1629. ;parse buffer and the call will fail with kOCEMoreAttrValue. However, it is possible that
  1630. ;ForEachAttributeValue was not called because the user does not have read access to some of
  1631. ;the attributeTypes in the list, and the buffer was full before even reading the creationID of
  1632. ;any of the attribute values.  A kOCEMoreData error is returned.
  1633. ;
  1634. ;The Toolbox will check for duplicate RecordIDs in the aRecordList. If found, it will return
  1635. ;'daDuplicateRecordIDErr'.
  1636. ;
  1637. ;The Toolbox will check for duplicate AttributeTypes in the attrTypeList. If found it will
  1638. ;return 'daDuplicateAttrTypeErr'.
  1639. ;
  1640.  
  1641. DirLookupGetPB            RECORD 0
  1642. qLink                     ds.l    1                ; offset: $0 (0)
  1643. reserved1                 ds.l    1                ; offset: $4 (4)
  1644. reserved2                 ds.l    1                ; offset: $8 (8)
  1645. ioCompletion             ds.l    1                ; offset: $C (12)
  1646. ioResult                 ds.w    1                ; offset: $10 (16)
  1647. saveA5                     ds.l    1                ; offset: $12 (18)
  1648. reqCode                     ds.w    1                ; offset: $16 (22)
  1649. reserved                 ds.l    2                ; offset: $18 (24)
  1650. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1651. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1652. callID                     ds.l    1                ; offset: $26 (38)
  1653. identity                 ds.l    1                ; offset: $2A (42)
  1654. gReserved1                 ds.l    1                ; offset: $2E (46)
  1655. gReserved2                 ds.l    1                ; offset: $32 (50)
  1656. gReserved3                 ds.l    1                ; offset: $36 (54)
  1657. clientData                 ds.l    1                ; offset: $3A (58)
  1658. aRecordList                 ds.l    1                ; offset: $3E (62)        ;   --> an array of RecordID pointers 
  1659. attrTypeList             ds.l    1                ; offset: $42 (66)        ;   --> an array of attribute types 
  1660. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  1661. dReserved                 ds.l    1                ; offset: $4A (74)        ;   --  
  1662. eReserved                 ds.l    1                ; offset: $4E (78)        ;   --  
  1663. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  1664. recordIDCount             ds.l    1                ; offset: $56 (86)        ;   --> 
  1665. attrTypeCount             ds.l    1                ; offset: $5A (90)        ;   --> 
  1666. includeStartingPoint     ds.b    1                ; offset: $5E (94)        ;   --> if true return the value specified by the starting indices 
  1667. padByte                     ds.b    1                ; offset: $5F (95)
  1668. i1Reserved                 ds.w    1                ; offset: $60 (96)        ;   --  
  1669. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  1670. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  1671. startingRecordIndex         ds.l    1                ; offset: $6A (106)        ;   --> start from this record 
  1672. startingAttrTypeIndex     ds.l    1                ; offset: $6E (110)        ;   --> start from this attribute type 
  1673. startingAttribute         ds        Attribute        ; offset: $72 (114)        ;   --> start from this attribute value 
  1674. pReserved                 ds.l    1                ; offset: $AA (170)        ;   --  
  1675. sizeof                     EQU *                    ; size:   $AE (174)
  1676.                         ENDR
  1677. ;  The Lookup call-back functions are defined as follows: 
  1678. ; typedef ForEachLookupRecordIDUPP         ForEachLookupRecordID
  1679.  
  1680. ; typedef ForEachAttrTypeLookupUPP         ForEachAttrTypeLookup
  1681.  
  1682. ; typedef ForEachAttrValueUPP             ForEachAttrValue
  1683.  
  1684. ;LookupParse:
  1685. ;
  1686. ;After a LookupGet call has completed, call LookupParse
  1687. ;to parse through the buffer that was filled in LookupGet.  The
  1688. ;toolbox will parse through the buffer and call the appropriate call-back routines
  1689. ;for each item in the getBuffer.
  1690. ;
  1691. ;'eachRecordID' will be called each time to return to the client one of the
  1692. ;RecordIDs from aRecordList.  The clientData parameter that you
  1693. ;pass in the parameter block will be passed to eachRecordID.
  1694. ;You are free to put anything in clientData - it is intended to allow
  1695. ;you some way to match the call-back to the original call (in case, for
  1696. ;example, you make simultaneous asynchronous LookupGet calls).  If you don't
  1697. ;want to get a call-back for each RecordID (for example, if you're looking up
  1698. ;attributes for only one RecordID), pass nil for eachRecordID.
  1699. ;
  1700. ;After forEachLocalRecordIDFunc is called, eachAttrType may be called to pass an
  1701. ;attribute type (one from attrTypeList) that exists in the record specified
  1702. ;in the last eachRecordID call.  If you don't want to get a call-back for
  1703. ;each AttributeType (for example, if you're looking up only one attribute type,
  1704. ;or you prefer to read the type from the Attribute struct during the eachAttrValue
  1705. ;call-back routine), pass nil for eachAttrType. However access controls may
  1706. ;prohibit you from reading some attribute types; in that case eachAttrValue
  1707. ;may not be called even though the value exists. Hence the client should
  1708. ;supply this call-back function to see the access controls for each attribute type.
  1709. ;
  1710. ;This will be followed by one or more calls to eachAttrValue, to pass the
  1711. ;type, tag, and attribute value.  NOTE THIS CHANGE:  you are no longer expected to
  1712. ;pass a pointer to a buffer in which to put the value.  Now you get a pointer to
  1713. ;the value, and you can process it within the call-back routine.
  1714. ;After one or more values are returned, eachAttrType may be called again to pass
  1715. ;another attribute type that exists in the last-specified RecordID.
  1716. ;
  1717. ;The client should return FALSE from eachRecordID, eachAttrType, and
  1718. ;eachAttrValue to continue processing of the LookupParse request.  Returning TRUE
  1719. ;from any call-back will terminate the LookupParse request.
  1720. ;
  1721. ;If LookupGet has failed with kOCEMoreData error, LookupParse will check to make sure that
  1722. ;ForEachAttributeValueFunc has been called at least once. If so, the client has the option
  1723. ;to continue from that attribute CreationID (for PAB/ADAP) in the next LookupGet call.
  1724. ;However, if it was not even called once, then the attribute value may be too big to fit in the
  1725. ;user's buffer. In this case, lastAttrValueCID (lastAttribute) and attrSize are returned in the
  1726. ;parse buffer and the call will fail with kOCEMoreAttrValue. However, it is possible that
  1727. ;ForEachAttributeValue was not called because the user does not have read access to some of
  1728. ;the attributeTypes in the list, and the buffer was full before even reading the creationID of
  1729. ;any of the attribute values.  A kOCEMoreData error is returned.
  1730. ;
  1731. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  1732. ;of execution as the thread that made the LookupParse call.  That means that the
  1733. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  1734. ;that were in effect when the call was made.  Because of this, the call-back
  1735. ;routine has the same restrictions as the caller of LookupParse:
  1736. ;if LookupParse was not called from interrupt level, then the call-
  1737. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  1738. ;like a ioCompletion except that A5 will be preserved for the application.
  1739. ;
  1740.  
  1741. DirLookupParsePB        RECORD 0
  1742. qLink                     ds.l    1                ; offset: $0 (0)
  1743. reserved1                 ds.l    1                ; offset: $4 (4)
  1744. reserved2                 ds.l    1                ; offset: $8 (8)
  1745. ioCompletion             ds.l    1                ; offset: $C (12)
  1746. ioResult                 ds.w    1                ; offset: $10 (16)
  1747. saveA5                     ds.l    1                ; offset: $12 (18)
  1748. reqCode                     ds.w    1                ; offset: $16 (22)
  1749. reserved                 ds.l    2                ; offset: $18 (24)
  1750. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1751. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1752. callID                     ds.l    1                ; offset: $26 (38)
  1753. identity                 ds.l    1                ; offset: $2A (42)
  1754. gReserved1                 ds.l    1                ; offset: $2E (46)
  1755. gReserved2                 ds.l    1                ; offset: $32 (50)
  1756. gReserved3                 ds.l    1                ; offset: $36 (54)
  1757. clientData                 ds.l    1                ; offset: $3A (58)
  1758. aRecordList                 ds.l    1                ; offset: $3E (62)        ;   --> must be same from the corresponding Get call 
  1759. attrTypeList             ds.l    1                ; offset: $42 (66)        ;   --> must be same from the corresponding Get call 
  1760. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  1761. eachRecordID             ds.l    1                ; offset: $4A (74)        ;   --> 
  1762. eachAttrType             ds.l    1                ; offset: $4E (78)        ;   --> 
  1763. eachAttrValue             ds.l    1                ; offset: $52 (82)        ;   --> 
  1764. recordIDCount             ds.l    1                ; offset: $56 (86)        ;   --> must be same from the corresponding Get call 
  1765. attrTypeCount             ds.l    1                ; offset: $5A (90)        ;   --> must be same from the corresponding Get call 
  1766. iReserved                 ds.l    1                ; offset: $5E (94)        ;   --  
  1767. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> must be same from the corresponding Get call
  1768. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> must be same from the corresponding Get call
  1769. lastRecordIndex             ds.l    1                ; offset: $6A (106)        ;  <--  last RecordID processed when parse completed 
  1770. lastAttributeIndex         ds.l    1                ; offset: $6E (110)        ;  <--  last Attribute Type processed when parse completed 
  1771. lastAttribute             ds        Attribute        ; offset: $72 (114)        ;  <--  last attribute value (with this CreationID) processed when parse completed 
  1772. attrSize                 ds.l    1                ; offset: $AA (170)        ;  <--  length of the attribute we did not return 
  1773. sizeof                     EQU *                    ; size:   $AE (174)
  1774.                         ENDR
  1775.  
  1776.  
  1777. ;  AddAttributeValue 
  1778. DirAddAttributeValuePB    RECORD 0
  1779. qLink                     ds.l    1                ; offset: $0 (0)
  1780. reserved1                 ds.l    1                ; offset: $4 (4)
  1781. reserved2                 ds.l    1                ; offset: $8 (8)
  1782. ioCompletion             ds.l    1                ; offset: $C (12)
  1783. ioResult                 ds.w    1                ; offset: $10 (16)
  1784. saveA5                     ds.l    1                ; offset: $12 (18)
  1785. reqCode                     ds.w    1                ; offset: $16 (22)
  1786. reserved                 ds.l    2                ; offset: $18 (24)
  1787. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1788. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1789. callID                     ds.l    1                ; offset: $26 (38)
  1790. identity                 ds.l    1                ; offset: $2A (42)
  1791. gReserved1                 ds.l    1                ; offset: $2E (46)
  1792. gReserved2                 ds.l    1                ; offset: $32 (50)
  1793. gReserved3                 ds.l    1                ; offset: $36 (54)
  1794. clientData                 ds.l    1                ; offset: $3A (58)
  1795. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  1796. attr                     ds.l    1                ; offset: $42 (66)        ;   --> AttributeCreationID returned here 
  1797. sizeof                     EQU *                    ; size:   $46 (70)
  1798.                         ENDR
  1799. ;aRecord must contain valid PackedRLI and a CreationID.
  1800. ;
  1801. ;Instead of passing type, length, and value in three separate
  1802. ;fields, we take a pointer to an Attribute structure that contains
  1803. ;all three, and has room for the AttributeCreationNumber.
  1804. ;The AttributeCreationID will be returned in the attr itself.
  1805. ;
  1806. ;The AttributeTag tells the catalog service that the attribute is an RString,
  1807. ;binary, or a RecordID.
  1808. ;
  1809.  
  1810. ;DeleteAttributeType:
  1811. ;This call is provided so that an existing AttributeType can be deleted.
  1812. ;If any attribute values exist for this type, they will all be deleted
  1813. ;(if the user has access rights to delete the values) and then the attribute type
  1814. ;will be deleted. Otherwise dsAccessDenied error will be returned.
  1815. ;
  1816.  
  1817. DirDeleteAttributeTypePB RECORD 0
  1818. qLink                     ds.l    1                ; offset: $0 (0)
  1819. reserved1                 ds.l    1                ; offset: $4 (4)
  1820. reserved2                 ds.l    1                ; offset: $8 (8)
  1821. ioCompletion             ds.l    1                ; offset: $C (12)
  1822. ioResult                 ds.w    1                ; offset: $10 (16)
  1823. saveA5                     ds.l    1                ; offset: $12 (18)
  1824. reqCode                     ds.w    1                ; offset: $16 (22)
  1825. reserved                 ds.l    2                ; offset: $18 (24)
  1826. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1827. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1828. callID                     ds.l    1                ; offset: $26 (38)
  1829. identity                 ds.l    1                ; offset: $2A (42)
  1830. gReserved1                 ds.l    1                ; offset: $2E (46)
  1831. gReserved2                 ds.l    1                ; offset: $32 (50)
  1832. gReserved3                 ds.l    1                ; offset: $36 (54)
  1833. clientData                 ds.l    1                ; offset: $3A (58)
  1834. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  1835. attrType                 ds.l    1                ; offset: $42 (66)        ;   --> 
  1836. sizeof                     EQU *                    ; size:   $46 (70)
  1837.                         ENDR
  1838. ;    DeleteAttributeValue
  1839. ;
  1840.  
  1841. DirDeleteAttributeValuePB RECORD 0
  1842. qLink                     ds.l    1                ; offset: $0 (0)
  1843. reserved1                 ds.l    1                ; offset: $4 (4)
  1844. reserved2                 ds.l    1                ; offset: $8 (8)
  1845. ioCompletion             ds.l    1                ; offset: $C (12)
  1846. ioResult                 ds.w    1                ; offset: $10 (16)
  1847. saveA5                     ds.l    1                ; offset: $12 (18)
  1848. reqCode                     ds.w    1                ; offset: $16 (22)
  1849. reserved                 ds.l    2                ; offset: $18 (24)
  1850. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1851. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1852. callID                     ds.l    1                ; offset: $26 (38)
  1853. identity                 ds.l    1                ; offset: $2A (42)
  1854. gReserved1                 ds.l    1                ; offset: $2E (46)
  1855. gReserved2                 ds.l    1                ; offset: $32 (50)
  1856. gReserved3                 ds.l    1                ; offset: $36 (54)
  1857. clientData                 ds.l    1                ; offset: $3A (58)
  1858. aRecord                     ds.l    1                ; offset: $3E (62)        ;   -> 
  1859. attr                     ds.l    1                ; offset: $42 (66)        ;   -> 
  1860. sizeof                     EQU *                    ; size:   $46 (70)
  1861.                         ENDR
  1862.  
  1863.  
  1864. ;    ChangeAttributeValue:
  1865. ;    currentAttr ==> the attribute to be changed. For ADAS and PAB CreationID is
  1866. ;                    sufficient
  1867. ;    newAttr     ==> new value for the attribute. For ADAS and PAB 
  1868. ;                    CreationID field will be set when
  1869. ;                    the call succeesfully completes
  1870. ;    
  1871. ;    aRecord     ==> must contain valid PackedRecordLocationInfo and a CreationID.
  1872. ;
  1873. ;
  1874. ;    
  1875. ;
  1876.  
  1877. DirChangeAttributeValuePB RECORD 0
  1878. qLink                     ds.l    1                ; offset: $0 (0)
  1879. reserved1                 ds.l    1                ; offset: $4 (4)
  1880. reserved2                 ds.l    1                ; offset: $8 (8)
  1881. ioCompletion             ds.l    1                ; offset: $C (12)
  1882. ioResult                 ds.w    1                ; offset: $10 (16)
  1883. saveA5                     ds.l    1                ; offset: $12 (18)
  1884. reqCode                     ds.w    1                ; offset: $16 (22)
  1885. reserved                 ds.l    2                ; offset: $18 (24)
  1886. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1887. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1888. callID                     ds.l    1                ; offset: $26 (38)
  1889. identity                 ds.l    1                ; offset: $2A (42)
  1890. gReserved1                 ds.l    1                ; offset: $2E (46)
  1891. gReserved2                 ds.l    1                ; offset: $32 (50)
  1892. gReserved3                 ds.l    1                ; offset: $36 (54)
  1893. clientData                 ds.l    1                ; offset: $3A (58)
  1894. aRecord                     ds.l    1                ; offset: $3E (62)        ;   -> 
  1895. currentAttr                 ds.l    1                ; offset: $42 (66)        ;   -> 
  1896. newAttr                     ds.l    1                ; offset: $46 (70)        ;   -> 
  1897. sizeof                     EQU *                    ; size:   $4A (74)
  1898.                         ENDR
  1899.  
  1900. ;  VerifyAttributeValue 
  1901. DirVerifyAttributeValuePB RECORD 0
  1902. qLink                     ds.l    1                ; offset: $0 (0)
  1903. reserved1                 ds.l    1                ; offset: $4 (4)
  1904. reserved2                 ds.l    1                ; offset: $8 (8)
  1905. ioCompletion             ds.l    1                ; offset: $C (12)
  1906. ioResult                 ds.w    1                ; offset: $10 (16)
  1907. saveA5                     ds.l    1                ; offset: $12 (18)
  1908. reqCode                     ds.w    1                ; offset: $16 (22)
  1909. reserved                 ds.l    2                ; offset: $18 (24)
  1910. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1911. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1912. callID                     ds.l    1                ; offset: $26 (38)
  1913. identity                 ds.l    1                ; offset: $2A (42)
  1914. gReserved1                 ds.l    1                ; offset: $2E (46)
  1915. gReserved2                 ds.l    1                ; offset: $32 (50)
  1916. gReserved3                 ds.l    1                ; offset: $36 (54)
  1917. clientData                 ds.l    1                ; offset: $3A (58)
  1918. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  1919. attr                     ds.l    1                ; offset: $42 (66)        ;   --> 
  1920. sizeof                     EQU *                    ; size:   $46 (70)
  1921.                         ENDR
  1922. ;aRecord must contain valid PackedRLI and a CreationID.
  1923. ;
  1924. ;The attribute type and value are passed in the attribute structure.  If the
  1925. ;attribute CreationID is non-zero, the server will verify that an attribute with
  1926. ;the specified value and creation number exists in aRecord.  If the attribute
  1927. ;CreationID is zero, the server will verify the attribute by type and value
  1928. ;alone, and return the attribute CreationID in the Attribute struct if the
  1929. ;attribute exists.
  1930. ;
  1931.  
  1932.  
  1933. ;EnumerateAttributeTypesGet:
  1934. ;The following two calls can be used to enumerate the attribute types present in
  1935. ;a specified RecordID.  The first, EnumerateAttributeTypesGet, processes the request
  1936. ;and reads the response into getBuffer, as much as will fit.  A kOCEMoreData error will
  1937. ;be returned if the buffer was not large enough.  After this call completes, the
  1938. ;client can call EnumerateAttributeTypesParse (see below).
  1939. ;
  1940. ;The user will able to continue from a startingPoint by setting a startingAttrType.
  1941. ;Typically, this should be the last value returned in EnumerateAttributeTypesParse call
  1942. ;when 'kOCEMoreData' is returned.
  1943. ;
  1944. ;If 'includeStartingPoint' is true when a 'startingAttrType' is specified, the starting value
  1945. ;will be included in the results, if it exists. If this is set to false, this value will not
  1946. ;be included. AttributeTypes following this type will be returned.
  1947. ;
  1948.  
  1949. DirEnumerateAttributeTypesGetPB RECORD 0
  1950. qLink                     ds.l    1                ; offset: $0 (0)
  1951. reserved1                 ds.l    1                ; offset: $4 (4)
  1952. reserved2                 ds.l    1                ; offset: $8 (8)
  1953. ioCompletion             ds.l    1                ; offset: $C (12)
  1954. ioResult                 ds.w    1                ; offset: $10 (16)
  1955. saveA5                     ds.l    1                ; offset: $12 (18)
  1956. reqCode                     ds.w    1                ; offset: $16 (22)
  1957. reserved                 ds.l    2                ; offset: $18 (24)
  1958. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1959. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1960. callID                     ds.l    1                ; offset: $26 (38)
  1961. identity                 ds.l    1                ; offset: $2A (42)
  1962. gReserved1                 ds.l    1                ; offset: $2E (46)
  1963. gReserved2                 ds.l    1                ; offset: $32 (50)
  1964. gReserved3                 ds.l    1                ; offset: $36 (54)
  1965. clientData                 ds.l    1                ; offset: $3A (58)
  1966. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  1967. startingAttrType         ds.l    1                ; offset: $42 (66)        ;   --> starting point 
  1968. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  1969. dReserved                 ds.l    1                ; offset: $4A (74)        ;   --  
  1970. eReserved                 ds.l    1                ; offset: $4E (78)        ;   --  
  1971. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  1972. gReserved                 ds.l    1                ; offset: $56 (86)        ;   --  
  1973. hReserved                 ds.l    1                ; offset: $5A (90)        ;   --  
  1974. includeStartingPoint     ds.b    1                ; offset: $5E (94)        ;   --> if true return the attrType specified by starting point 
  1975. padByte                     ds.b    1                ; offset: $5F (95)
  1976. i1Reserved                 ds.w    1                ; offset: $60 (96)        ;   --  
  1977. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  1978. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  1979. sizeof                     EQU *                    ; size:   $6A (106)
  1980.                         ENDR
  1981. ;  The call-back function is defined as follows: 
  1982. ; typedef ForEachAttrTypeUPP             ForEachAttrType
  1983.  
  1984. ;EnumerateAttributeTypesParse:
  1985. ;After an EnumerateAttributeTypesGet call has completed, call EnumerateAttributeTypesParse
  1986. ;to parse through the buffer that was filled in EnumerateAttributeTypesGet.  The
  1987. ;toolbox will parse through the buffer and call the call-back routine for
  1988. ;each attribute type in the getBuffer.
  1989. ;
  1990. ;The client should return false from eachAttrType to continue
  1991. ;processing of the EnumerateAttributeTypesParse request.  Returning true will
  1992. ;terminate the EnumerateAttributeTypesParse request.  The clientData parameter that
  1993. ;you pass in the parameter block will be passed to eachAttrType.
  1994. ;You are free to put anything in clientData - it is intended to allow
  1995. ;you some way to match the call-back to the original call (in case, for
  1996. ;example, you make simultaneous asynchronous calls).
  1997. ;
  1998. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  1999. ;of execution as the thread that made the EnumerateAttributeTypesParse call.  That means that the
  2000. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  2001. ;that were in effect when the call was made.  Because of this, the call-back
  2002. ;routine has the same restrictions as the caller of EnumerateAttributeTypesParse.
  2003. ;If EnumerateAttributeTypesParse was not called from interrupt level, then the call-
  2004. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  2005. ;like a ioCompletion except that A5 will be preserved for the application.
  2006. ;
  2007.  
  2008. DirEnumerateAttributeTypesParsePB RECORD 0
  2009. qLink                     ds.l    1                ; offset: $0 (0)
  2010. reserved1                 ds.l    1                ; offset: $4 (4)
  2011. reserved2                 ds.l    1                ; offset: $8 (8)
  2012. ioCompletion             ds.l    1                ; offset: $C (12)
  2013. ioResult                 ds.w    1                ; offset: $10 (16)
  2014. saveA5                     ds.l    1                ; offset: $12 (18)
  2015. reqCode                     ds.w    1                ; offset: $16 (22)
  2016. reserved                 ds.l    2                ; offset: $18 (24)
  2017. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2018. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2019. callID                     ds.l    1                ; offset: $26 (38)
  2020. identity                 ds.l    1                ; offset: $2A (42)
  2021. gReserved1                 ds.l    1                ; offset: $2E (46)
  2022. gReserved2                 ds.l    1                ; offset: $32 (50)
  2023. gReserved3                 ds.l    1                ; offset: $36 (54)
  2024. clientData                 ds.l    1                ; offset: $3A (58)
  2025. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> Same as DirEnumerateAttributeTypesGetPB 
  2026. bReserved                 ds.l    1                ; offset: $42 (66)        ;   --  
  2027. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  2028. dReserved                 ds.l    1                ; offset: $4A (74)        ;   --  
  2029. eachAttrType             ds.l    1                ; offset: $4E (78)        ;   --> 
  2030. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  2031. gReserved                 ds.l    1                ; offset: $56 (86)        ;   --  
  2032. hReserved                 ds.l    1                ; offset: $5A (90)        ;   --  
  2033. iReserved                 ds.l    1                ; offset: $5E (94)        ;   --  
  2034. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  2035. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  2036. sizeof                     EQU *                    ; size:   $6A (106)
  2037.                         ENDR
  2038. ;DirAbort:
  2039. ;With this call a user will able to abort an outstanding catalog service call.
  2040. ;A user must pass a pointer to the parameter block for the outstanding call.
  2041. ;In the current version of the product, the toolbox will process this call
  2042. ;for NetSearchADAPDirectoriesGet or FindADAPDirectoryByNetSearch calls and if possible
  2043. ;it will abort. For other calls for ADAP and PAB this will return 'daAbortFailErr'.
  2044. ;For CSAM catalogs, this call will be passed to the corresponding CSAM driver.
  2045. ;The CSAM driver may process this call or may return 'daAbortFailErr'. This call can
  2046. ;be called only in synchronous mode. Since the abort call makes references to fields in
  2047. ;the pb associated with the original call, this pb must not be disposed or or altered if
  2048. ;the original call completes before the abort call has completed.
  2049. ;
  2050.  
  2051. DirAbortPB                RECORD 0
  2052. qLink                     ds.l    1                ; offset: $0 (0)
  2053. reserved1                 ds.l    1                ; offset: $4 (4)
  2054. reserved2                 ds.l    1                ; offset: $8 (8)
  2055. ioCompletion             ds.l    1                ; offset: $C (12)
  2056. ioResult                 ds.w    1                ; offset: $10 (16)
  2057. saveA5                     ds.l    1                ; offset: $12 (18)
  2058. reqCode                     ds.w    1                ; offset: $16 (22)
  2059. reserved                 ds.l    2                ; offset: $18 (24)
  2060. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2061. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2062. callID                     ds.l    1                ; offset: $26 (38)
  2063. identity                 ds.l    1                ; offset: $2A (42)
  2064. gReserved1                 ds.l    1                ; offset: $2E (46)
  2065. gReserved2                 ds.l    1                ; offset: $32 (50)
  2066. gReserved3                 ds.l    1                ; offset: $36 (54)
  2067. clientData                 ds.l    1                ; offset: $3A (58)
  2068. pb                         ds.l    1                ; offset: $3E (62)        ;   --> pb for the call which must be aborted 
  2069. sizeof                     EQU *                    ; size:   $42 (66)
  2070.                         ENDR
  2071.  
  2072. ;AddPseudonym:
  2073. ;An alternate name and type can be added to a given record. If allowDuplicate
  2074. ;is set the name and type will be added even if the same name and type already
  2075. ;exists.
  2076. ;
  2077.  
  2078. DirAddPseudonymPB        RECORD 0
  2079. qLink                     ds.l    1                ; offset: $0 (0)
  2080. reserved1                 ds.l    1                ; offset: $4 (4)
  2081. reserved2                 ds.l    1                ; offset: $8 (8)
  2082. ioCompletion             ds.l    1                ; offset: $C (12)
  2083. ioResult                 ds.w    1                ; offset: $10 (16)
  2084. saveA5                     ds.l    1                ; offset: $12 (18)
  2085. reqCode                     ds.w    1                ; offset: $16 (22)
  2086. reserved                 ds.l    2                ; offset: $18 (24)
  2087. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2088. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2089. callID                     ds.l    1                ; offset: $26 (38)
  2090. identity                 ds.l    1                ; offset: $2A (42)
  2091. gReserved1                 ds.l    1                ; offset: $2E (46)
  2092. gReserved2                 ds.l    1                ; offset: $32 (50)
  2093. gReserved3                 ds.l    1                ; offset: $36 (54)
  2094. clientData                 ds.l    1                ; offset: $3A (58)
  2095. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> RecordID to which pseudonym is to be added 
  2096. pseudonymName             ds.l    1                ; offset: $42 (66)        ;   --> new name to be added as pseudonym 
  2097. pseudonymType             ds.l    1                ; offset: $46 (70)        ;   --> new name to be added as pseudonym 
  2098. allowDuplicate             ds.b    1                ; offset: $4A (74)        ;   --> 
  2099. filler1                     ds.b    1                ; offset: $4B (75)
  2100. sizeof                     EQU *                    ; size:   $4C (76)
  2101.                         ENDR
  2102. ;DeletePseudonym:
  2103. ;An alternate name and type for a given record can be deleted.
  2104. ;
  2105.  
  2106. DirDeletePseudonymPB    RECORD 0
  2107. qLink                     ds.l    1                ; offset: $0 (0)
  2108. reserved1                 ds.l    1                ; offset: $4 (4)
  2109. reserved2                 ds.l    1                ; offset: $8 (8)
  2110. ioCompletion             ds.l    1                ; offset: $C (12)
  2111. ioResult                 ds.w    1                ; offset: $10 (16)
  2112. saveA5                     ds.l    1                ; offset: $12 (18)
  2113. reqCode                     ds.w    1                ; offset: $16 (22)
  2114. reserved                 ds.l    2                ; offset: $18 (24)
  2115. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2116. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2117. callID                     ds.l    1                ; offset: $26 (38)
  2118. identity                 ds.l    1                ; offset: $2A (42)
  2119. gReserved1                 ds.l    1                ; offset: $2E (46)
  2120. gReserved2                 ds.l    1                ; offset: $32 (50)
  2121. gReserved3                 ds.l    1                ; offset: $36 (54)
  2122. clientData                 ds.l    1                ; offset: $3A (58)
  2123. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> RecordID to which pseudonym to be added 
  2124. pseudonymName             ds.l    1                ; offset: $42 (66)        ;   --> pseudonymName to be deleted 
  2125. pseudonymType             ds.l    1                ; offset: $46 (70)        ;   --> pseudonymType to be deleted 
  2126. sizeof                     EQU *                    ; size:   $4A (74)
  2127.                         ENDR
  2128.  
  2129. ;    AddAlias:
  2130. ;    This call can be used to create an alias  record. The alias
  2131. ;    can be created either in the same or different cluster. ADAS will not support
  2132. ;    this call for this release. A new catalog capability flag 'kSupportsAlias' will indicate
  2133. ;    if the catalog supports this call. PAB's will support this call. For the PAB implementation,
  2134. ;    this call will create a record with the name and type specified an aRecord.
  2135. ;    This call works exactly like AddRecord.
  2136. ;    If 'allowDuplicate' is false and another record with same name and type already exists
  2137. ;    'daNoDupAllowed' error will be returned.
  2138. ;
  2139.  
  2140. DirAddAliasPB            RECORD 0
  2141. qLink                     ds.l    1                ; offset: $0 (0)
  2142. reserved1                 ds.l    1                ; offset: $4 (4)
  2143. reserved2                 ds.l    1                ; offset: $8 (8)
  2144. ioCompletion             ds.l    1                ; offset: $C (12)
  2145. ioResult                 ds.w    1                ; offset: $10 (16)
  2146. saveA5                     ds.l    1                ; offset: $12 (18)
  2147. reqCode                     ds.w    1                ; offset: $16 (22)
  2148. reserved                 ds.l    2                ; offset: $18 (24)
  2149. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2150. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2151. callID                     ds.l    1                ; offset: $26 (38)
  2152. identity                 ds.l    1                ; offset: $2A (42)
  2153. gReserved1                 ds.l    1                ; offset: $2E (46)
  2154. gReserved2                 ds.l    1                ; offset: $32 (50)
  2155. gReserved3                 ds.l    1                ; offset: $36 (54)
  2156. clientData                 ds.l    1                ; offset: $3A (58)
  2157. aRecord                     ds.l    1                ; offset: $3E (62)        ;   -> 
  2158. allowDuplicate             ds.b    1                ; offset: $42 (66)        ;   -> 
  2159. filler1                     ds.b    1                ; offset: $43 (67)
  2160. sizeof                     EQU *                    ; size:   $44 (68)
  2161.                         ENDR
  2162. ;DirFindValue:
  2163. ;This call can be used to find the occurrence of a value. The value
  2164. ;to be matched is passed in the buffer 'matchingData' field. The current
  2165. ;ADAP/PAB implementation will match a maximum of 32 bytes of data.
  2166. ;For attribute values in the PAB/ADAP implementation, only the first 32 bytes will
  2167. ;be used for comparing the occurrence of data. Search can be restricted to
  2168. ;a particular record and/or attribute type by specifying 'aRecord' or 'aType'.
  2169. ;After finding one occurrence, 'startingRecord' and 'startingAttribute'
  2170. ;can be specified to find the next occurrence of the same value.
  2171. ;'sortDirection' can be specified with starting values to search forward or backward.
  2172. ;When a matching value is found, the 'recordFound' indicates the reccordID in which the
  2173. ;data occurrence was found, 'attributeFound' indicates the attribute with in which the
  2174. ;matching data was found. ADAP/PAB implementation returns only the type and creationID of
  2175. ;attributes. Catalogs which don't support creationIDs may return the
  2176. ;complete value; hence this call may need a buffer to hold the data. For ADAP/PAB implementations
  2177. ;the user has to make a DirLookup call to get the actual data. 'recordFound' and
  2178. ;'attributeFound' can be used to initialize 'startingRecord' and 'startingAttribute' to
  2179. ;find the next occurrence of the value.
  2180. ;
  2181.  
  2182. DirFindValuePB            RECORD 0
  2183. qLink                     ds.l    1                ; offset: $0 (0)
  2184. reserved1                 ds.l    1                ; offset: $4 (4)
  2185. reserved2                 ds.l    1                ; offset: $8 (8)
  2186. ioCompletion             ds.l    1                ; offset: $C (12)
  2187. ioResult                 ds.w    1                ; offset: $10 (16)
  2188. saveA5                     ds.l    1                ; offset: $12 (18)
  2189. reqCode                     ds.w    1                ; offset: $16 (22)
  2190. reserved                 ds.l    2                ; offset: $18 (24)
  2191. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2192. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2193. callID                     ds.l    1                ; offset: $26 (38)
  2194. identity                 ds.l    1                ; offset: $2A (42)
  2195. gReserved1                 ds.l    1                ; offset: $2E (46)
  2196. gReserved2                 ds.l    1                ; offset: $32 (50)
  2197. gReserved3                 ds.l    1                ; offset: $36 (54)
  2198. clientData                 ds.l    1                ; offset: $3A (58)
  2199. aRLI                     ds.l    1                ; offset: $3E (62)        ;   --> an RLI specifying the cluster to be enumerated 
  2200. aRecord                     ds.l    1                ; offset: $42 (66)        ;   --> if not nil, look only in this record 
  2201. attrType                 ds.l    1                ; offset: $46 (70)        ;   --> if not nil, look only in this attribute type 
  2202. startingRecord             ds.l    1                ; offset: $4A (74)        ;   --> record in which to start searching 
  2203. startingAttribute         ds.l    1                ; offset: $4E (78)        ;   --> attribute in which to start searching 
  2204. recordFound                 ds.l    1                ; offset: $52 (82)        ;  <--  record in which data was found 
  2205. attributeFound             ds        Attribute        ; offset: $56 (86)        ;  <--  attribute in which data was found 
  2206. matchSize                 ds.l    1                ; offset: $8E (142)        ;   --> length of matching bytes 
  2207. matchingData             ds.l    1                ; offset: $92 (146)        ;   --> data bytes to be matched in search 
  2208. sortDirection             ds.w    1                ; offset: $96 (150)        ;   --> sort direction (forwards or backwards) 
  2209. sizeof                     EQU *                    ; size:   $98 (152)
  2210.                         ENDR
  2211.  
  2212.  
  2213. ;EnumeratePseudonymGet:
  2214. ;This call can be used to enumerate the existing pseudonyms for
  2215. ;a given record specified in 'aRecord'. A starting point can be specified
  2216. ;by 'startingName' and 'startingType'. If the 'includeStartingPoint' boolean
  2217. ;is true and a starting point is specified, the name specified by startingName
  2218. ;and startingType also is returned in the results, if it exists. If this is set to false,
  2219. ;the pseudonym in startingName and Type is not included.
  2220. ;Pseudonyms returned in the 'getBuffer' can be extracted by making an
  2221. ;EnumeratePseudonymParse call. The results will consist of a RecordID with the
  2222. ;name and type of the pseudonym. If the buffer could not hold all the results, then
  2223. ;'kOCEMoreData' error will be returned. The user will be able to continue the call by
  2224. ;using the last result returned as starting point for the next call.
  2225. ;
  2226.  
  2227. DirEnumeratePseudonymGetPB RECORD 0
  2228. qLink                     ds.l    1                ; offset: $0 (0)
  2229. reserved1                 ds.l    1                ; offset: $4 (4)
  2230. reserved2                 ds.l    1                ; offset: $8 (8)
  2231. ioCompletion             ds.l    1                ; offset: $C (12)
  2232. ioResult                 ds.w    1                ; offset: $10 (16)
  2233. saveA5                     ds.l    1                ; offset: $12 (18)
  2234. reqCode                     ds.w    1                ; offset: $16 (22)
  2235. reserved                 ds.l    2                ; offset: $18 (24)
  2236. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2237. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2238. callID                     ds.l    1                ; offset: $26 (38)
  2239. identity                 ds.l    1                ; offset: $2A (42)
  2240. gReserved1                 ds.l    1                ; offset: $2E (46)
  2241. gReserved2                 ds.l    1                ; offset: $32 (50)
  2242. gReserved3                 ds.l    1                ; offset: $36 (54)
  2243. clientData                 ds.l    1                ; offset: $3A (58)
  2244. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  2245. startingName             ds.l    1                ; offset: $42 (66)        ;   --> 
  2246. startingType             ds.l    1                ; offset: $46 (70)        ;   --> 
  2247. dReserved                 ds.l    1                ; offset: $4A (74)        ;   --  
  2248. eReserved                 ds.l    1                ; offset: $4E (78)        ;   --  
  2249. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  2250. gReserved                 ds.l    1                ; offset: $56 (86)        ;   --  
  2251. hReserved                 ds.l    1                ; offset: $5A (90)        ;   --  
  2252. includeStartingPoint     ds.b    1                ; offset: $5E (94)        ;   --> if true return the Pseudonym specified by starting point will be included 
  2253. padByte                     ds.b    1                ; offset: $5F (95)
  2254. i1Reserved                 ds.w    1                ; offset: $60 (96)        ;   --  
  2255. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  2256. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  2257. sizeof                     EQU *                    ; size:   $6A (106)
  2258.                         ENDR
  2259. ;  The call-back function is defined as follows: 
  2260. ; typedef ForEachRecordIDUPP             ForEachRecordID
  2261.  
  2262. ;EnumeratePseudonymParse:
  2263. ;The pseudonyms returned in the 'getBuffer' from the EnumeratePseudonymGet call
  2264. ;can be extracted by using the EnumeratePseudonymParse call. 'eachRecordID'
  2265. ;will be called for each pseudonym.
  2266. ;
  2267. ;Returning true from any call-back will terminate the EnumeratePseudonymParse call.
  2268. ;
  2269. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  2270. ;of execution as the thread that made the EnumeratePseudonymParse call.  That means that the
  2271. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  2272. ;that were in effect when the call was made.  Because of this, the call-back
  2273. ;routine has the same restrictions as the caller of EnumeratePseudonymParse:
  2274. ;if EnumeratePseudonymParse was not called from interrupt level, then the call-
  2275. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  2276. ;like a ioCompletion except that A5 will be preserved for the application.
  2277. ;
  2278.  
  2279. DirEnumeratePseudonymParsePB RECORD 0
  2280. qLink                     ds.l    1                ; offset: $0 (0)
  2281. reserved1                 ds.l    1                ; offset: $4 (4)
  2282. reserved2                 ds.l    1                ; offset: $8 (8)
  2283. ioCompletion             ds.l    1                ; offset: $C (12)
  2284. ioResult                 ds.w    1                ; offset: $10 (16)
  2285. saveA5                     ds.l    1                ; offset: $12 (18)
  2286. reqCode                     ds.w    1                ; offset: $16 (22)
  2287. reserved                 ds.l    2                ; offset: $18 (24)
  2288. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2289. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2290. callID                     ds.l    1                ; offset: $26 (38)
  2291. identity                 ds.l    1                ; offset: $2A (42)
  2292. gReserved1                 ds.l    1                ; offset: $2E (46)
  2293. gReserved2                 ds.l    1                ; offset: $32 (50)
  2294. gReserved3                 ds.l    1                ; offset: $36 (54)
  2295. clientData                 ds.l    1                ; offset: $3A (58)
  2296. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> same as DirEnumerateAliasesGetPB 
  2297. bReserved                 ds.l    1                ; offset: $42 (66)        ;   --  
  2298. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  2299. eachRecordID             ds.l    1                ; offset: $4A (74)        ;   --> 
  2300. eReserved                 ds.l    1                ; offset: $4E (78)        ;   --  
  2301. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  2302. gReserved                 ds.l    1                ; offset: $56 (86)        ;   --  
  2303. hReserved                 ds.l    1                ; offset: $5A (90)        ;   --  
  2304. iReserved                 ds.l    1                ; offset: $5E (94)        ;   --  
  2305. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  2306. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  2307. sizeof                     EQU *                    ; size:   $6A (106)
  2308.                         ENDR
  2309.  
  2310.  
  2311. ;  GetNameAndType 
  2312. DirGetNameAndTypePB        RECORD 0
  2313. qLink                     ds.l    1                ; offset: $0 (0)
  2314. reserved1                 ds.l    1                ; offset: $4 (4)
  2315. reserved2                 ds.l    1                ; offset: $8 (8)
  2316. ioCompletion             ds.l    1                ; offset: $C (12)
  2317. ioResult                 ds.w    1                ; offset: $10 (16)
  2318. saveA5                     ds.l    1                ; offset: $12 (18)
  2319. reqCode                     ds.w    1                ; offset: $16 (22)
  2320. reserved                 ds.l    2                ; offset: $18 (24)
  2321. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2322. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2323. callID                     ds.l    1                ; offset: $26 (38)
  2324. identity                 ds.l    1                ; offset: $2A (42)
  2325. gReserved1                 ds.l    1                ; offset: $2E (46)
  2326. gReserved2                 ds.l    1                ; offset: $32 (50)
  2327. gReserved3                 ds.l    1                ; offset: $36 (54)
  2328. clientData                 ds.l    1                ; offset: $3A (58)
  2329. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  2330. sizeof                     EQU *                    ; size:   $42 (66)
  2331.                         ENDR
  2332. ;aRecord must contain valid RLI and a CreationID.  It
  2333. ;must also contain pointers to maximum-length RStrings (name and type fields)
  2334. ;in which will be returned the record's distinguished name and type.
  2335. ;
  2336.  
  2337.  
  2338. ;SetNameAndType:
  2339. ;This call can be used to change a name and type for a record. The record
  2340. ;to be renamed is specified using 'aRecord'.
  2341. ;'newName' and 'newType' indicate the name and type to be set.
  2342. ;'allowDuplicate' if true indicates that name is to be set even if another
  2343. ;name and type exactly matches the newName and newType specified.
  2344. ;
  2345. ;'newName' and 'newType' are required since the catalogs not supporting
  2346. ;CreationID require name and type fields in the recordID to identify a given
  2347. ;record.
  2348. ;
  2349.  
  2350. DirSetNameAndTypePB        RECORD 0
  2351. qLink                     ds.l    1                ; offset: $0 (0)
  2352. reserved1                 ds.l    1                ; offset: $4 (4)
  2353. reserved2                 ds.l    1                ; offset: $8 (8)
  2354. ioCompletion             ds.l    1                ; offset: $C (12)
  2355. ioResult                 ds.w    1                ; offset: $10 (16)
  2356. saveA5                     ds.l    1                ; offset: $12 (18)
  2357. reqCode                     ds.w    1                ; offset: $16 (22)
  2358. reserved                 ds.l    2                ; offset: $18 (24)
  2359. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2360. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2361. callID                     ds.l    1                ; offset: $26 (38)
  2362. identity                 ds.l    1                ; offset: $2A (42)
  2363. gReserved1                 ds.l    1                ; offset: $2E (46)
  2364. gReserved2                 ds.l    1                ; offset: $32 (50)
  2365. gReserved3                 ds.l    1                ; offset: $36 (54)
  2366. clientData                 ds.l    1                ; offset: $3A (58)
  2367. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  2368. allowDuplicate             ds.b    1                ; offset: $42 (66)        ;   --> 
  2369. padByte                     ds.b    1                ; offset: $43 (67)
  2370. newName                     ds.l    1                ; offset: $44 (68)        ;   --> new name for the record 
  2371. newType                     ds.l    1                ; offset: $48 (72)        ;   --> new type for the record 
  2372. sizeof                     EQU *                    ; size:   $4C (76)
  2373.                         ENDR
  2374.  
  2375.  
  2376.  
  2377. ;DirGetMetaRecordInfo: This call can be made to obtain
  2378. ;the MetaRecordInfo for a given record. Information returned
  2379. ;is 16 bytes of OPAQUE information about the record.
  2380. ;
  2381.  
  2382. DirGetRecordMetaInfoPB    RECORD 0
  2383. qLink                     ds.l    1                ; offset: $0 (0)
  2384. reserved1                 ds.l    1                ; offset: $4 (4)
  2385. reserved2                 ds.l    1                ; offset: $8 (8)
  2386. ioCompletion             ds.l    1                ; offset: $C (12)
  2387. ioResult                 ds.w    1                ; offset: $10 (16)
  2388. saveA5                     ds.l    1                ; offset: $12 (18)
  2389. reqCode                     ds.w    1                ; offset: $16 (22)
  2390. reserved                 ds.l    2                ; offset: $18 (24)
  2391. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2392. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2393. callID                     ds.l    1                ; offset: $26 (38)
  2394. identity                 ds.l    1                ; offset: $2A (42)
  2395. gReserved1                 ds.l    1                ; offset: $2E (46)
  2396. gReserved2                 ds.l    1                ; offset: $32 (50)
  2397. gReserved3                 ds.l    1                ; offset: $36 (54)
  2398. clientData                 ds.l    1                ; offset: $3A (58)
  2399. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  2400. metaInfo                 ds        DirMetaInfo        ; offset: $42 (66)        ;  <--  
  2401. sizeof                     EQU *                    ; size:   $52 (82)
  2402.                         ENDR
  2403.  
  2404. ;DirGetDNodeMetaInfo: This call can be made to obtain
  2405. ;the DNodeMetaInfo for a given Packed RLI. Information returned
  2406. ;is 16 bytes of OPAQUE information about the DNode.
  2407. ;
  2408.  
  2409. DirGetDNodeMetaInfoPB    RECORD 0
  2410. qLink                     ds.l    1                ; offset: $0 (0)
  2411. reserved1                 ds.l    1                ; offset: $4 (4)
  2412. reserved2                 ds.l    1                ; offset: $8 (8)
  2413. ioCompletion             ds.l    1                ; offset: $C (12)
  2414. ioResult                 ds.w    1                ; offset: $10 (16)
  2415. saveA5                     ds.l    1                ; offset: $12 (18)
  2416. reqCode                     ds.w    1                ; offset: $16 (22)
  2417. reserved                 ds.l    2                ; offset: $18 (24)
  2418. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2419. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2420. callID                     ds.l    1                ; offset: $26 (38)
  2421. identity                 ds.l    1                ; offset: $2A (42)
  2422. gReserved1                 ds.l    1                ; offset: $2E (46)
  2423. gReserved2                 ds.l    1                ; offset: $32 (50)
  2424. gReserved3                 ds.l    1                ; offset: $36 (54)
  2425. clientData                 ds.l    1                ; offset: $3A (58)
  2426. pRLI                     ds.l    1                ; offset: $3E (62)        ;   --> 
  2427. metaInfo                 ds        DirMetaInfo        ; offset: $42 (66)        ;  <--  
  2428. sizeof                     EQU *                    ; size:   $52 (82)
  2429.                         ENDR
  2430.  
  2431. ;EnumerateDirectoriesGet:
  2432. ;A user can enumerate all the catalogs installed. This includes installed
  2433. ;ADAP and CSAM catalogs. The user can specify a signature as input to restrict
  2434. ;the results. kDirADAPKind will return only ADAP catalogs, kDirDSAMKind
  2435. ;will return all CSAM catalogs. kDirAllKinds will get both ADAP & CSAM catalogs.
  2436. ;A specific signature (e.g. X.500) may be used to get catalogs with an X.500 signature.
  2437. ;The information for each catalog returned will have directoryName, discriminator and features.
  2438. ;
  2439. ;If the user receives 'noErr' or 'kOCEMoreData', the buffer will contain valid results. A user
  2440. ;can extract the results in the 'getBuffer' by making an DirEnumerateDirectories call.
  2441. ;
  2442. ;If 'kOCEMoreData' is received, the user can continue enumeration by using the last catalog and
  2443. ;discriminator as startingDirectoryName and staringDirDiscriminator in the next call.
  2444. ;
  2445. ;If 'includeStartingPoint' is true and a starting point is specified,
  2446. ;the staring point will be returned in the result. If false, it is not included.
  2447. ;
  2448.  
  2449. DirEnumerateDirectoriesGetPB RECORD 0
  2450. qLink                     ds.l    1                ; offset: $0 (0)
  2451. reserved1                 ds.l    1                ; offset: $4 (4)
  2452. reserved2                 ds.l    1                ; offset: $8 (8)
  2453. ioCompletion             ds.l    1                ; offset: $C (12)
  2454. ioResult                 ds.w    1                ; offset: $10 (16)
  2455. saveA5                     ds.l    1                ; offset: $12 (18)
  2456. reqCode                     ds.w    1                ; offset: $16 (22)
  2457. reserved                 ds.l    2                ; offset: $18 (24)
  2458. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2459. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2460. callID                     ds.l    1                ; offset: $26 (38)
  2461. identity                 ds.l    1                ; offset: $2A (42)
  2462. gReserved1                 ds.l    1                ; offset: $2E (46)
  2463. gReserved2                 ds.l    1                ; offset: $32 (50)
  2464. gReserved3                 ds.l    1                ; offset: $36 (54)
  2465. clientData                 ds.l    1                ; offset: $3A (58)
  2466. directoryKind             ds.l    1                ; offset: $3E (62)        ;   --> enumerate catalogs bearing this signature 
  2467. startingDirectoryName     ds.l    1                ; offset: $42 (66)        ;   --> staring catalog name 
  2468. startingDirDiscriminator  ds    DirDiscriminator ; offset: $46 (70)        ;   --> staring catalog discriminator 
  2469. eReserved                 ds.l    1                ; offset: $4E (78)        ;   --  
  2470. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  2471. gReserved                 ds.l    1                ; offset: $56 (86)        ;   --  
  2472. hReserved                 ds.l    1                ; offset: $5A (90)        ;   --  
  2473. includeStartingPoint     ds.b    1                ; offset: $5E (94)        ;   --> if true return the catalog specified by starting point 
  2474. padByte                     ds.b    1                ; offset: $5F (95)
  2475. i1Reserved                 ds.w    1                ; offset: $60 (96)        ;   --  
  2476. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  2477. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  2478. sizeof                     EQU *                    ; size:   $6A (106)
  2479.                         ENDR
  2480.  
  2481.  
  2482. ; typedef ForEachDirectoryUPP             ForEachDirectory
  2483.  
  2484. ;EnumerateDirectoriesParse:
  2485. ;The catalog info returned in 'getBuffer' from the EnumerateDirectoriesGet call
  2486. ;can be extracted using the EnumerateDirectoriesParse call. 'eachDirectory' will
  2487. ;be called for each catalog.
  2488. ;
  2489. ;Returning true from any call-back will terminate the EnumerateDirectoriesParse call.
  2490. ;
  2491. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  2492. ;of execution as the thread that made the EnumerateDirectoriesParse call.  That means that the
  2493. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  2494. ;that were in effect when the call was made.  Because of this, the call-back
  2495. ;routine has the same restrictions as the caller of EnumerateDirectoriesParse:
  2496. ;if EnumerateDirectoriesParse was not called from interrupt level, then the call-
  2497. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  2498. ;like a ioCompletion except that A5 will be preserved for the application.
  2499. ;
  2500. ;eachDirectory will be called each time to return to the client a
  2501. ;DirectoryName, DirDiscriminator, and features for that catalog.
  2502. ;
  2503.  
  2504. DirEnumerateDirectoriesParsePB RECORD 0
  2505. qLink                     ds.l    1                ; offset: $0 (0)
  2506. reserved1                 ds.l    1                ; offset: $4 (4)
  2507. reserved2                 ds.l    1                ; offset: $8 (8)
  2508. ioCompletion             ds.l    1                ; offset: $C (12)
  2509. ioResult                 ds.w    1                ; offset: $10 (16)
  2510. saveA5                     ds.l    1                ; offset: $12 (18)
  2511. reqCode                     ds.w    1                ; offset: $16 (22)
  2512. reserved                 ds.l    2                ; offset: $18 (24)
  2513. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2514. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2515. callID                     ds.l    1                ; offset: $26 (38)
  2516. identity                 ds.l    1                ; offset: $2A (42)
  2517. gReserved1                 ds.l    1                ; offset: $2E (46)
  2518. gReserved2                 ds.l    1                ; offset: $32 (50)
  2519. gReserved3                 ds.l    1                ; offset: $36 (54)
  2520. clientData                 ds.l    1                ; offset: $3A (58)
  2521. aReserved                 ds.l    1                ; offset: $3E (62)        ;   --  
  2522. bReserved                 ds.l    1                ; offset: $42 (66)        ;   --  
  2523. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  2524. dReserved                 ds.l    1                ; offset: $4A (74)        ;   --  
  2525. eachDirectory             ds.l    1                ; offset: $4E (78)        ;   --> 
  2526. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  2527. gReserved                 ds.l    1                ; offset: $56 (86)        ;   --  
  2528. hReserved                 ds.l    1                ; offset: $5A (90)        ;   --  
  2529. iReserved                 ds.l    1                ; offset: $5E (94)        ;   --  
  2530. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  2531. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  2532. sizeof                     EQU *                    ; size:   $6A (106)
  2533.                         ENDR
  2534.  
  2535. ;The Following five call are specific to ADAP Catalogs. Toolbox
  2536. ;remembers a list of catalogs across boots. If any catalog service
  2537. ;call is intended for a ADAP catalog, then it must be in the list.
  2538. ;In order for managing this list, A client (Probably DE will use these
  2539. ;calls.
  2540. ;DirAddADAPDirectoryPB: Add a new ADAP catalog to the list.
  2541. ;DirRemoveADAPDirectory: Remove a ADAP catalog from the list.
  2542. ;DirNetSearchADAPDirectoriesGet:   search an internet for adas catalogs.
  2543. ;DirNetSearchADAPDirectoriesParse: extract the results obtained NetSearchADAPDirectoriesGet.
  2544. ;DirFindADAPDirectoryByNetSearch: Find a specified catalog through net search.
  2545. ;
  2546.  
  2547. ;NetSearchADAPDirectoriesGet:
  2548. ;This call can be used to make a network wide search for finding ADAP catalogs.
  2549. ;This call will be supported only by 'ADAP' and involve highly expensive
  2550. ;network operations, so the user is advised to use utmost discretion before
  2551. ;making this call. The results will be collected in the 'getbuffer' and can be
  2552. ;extracted using NetSearchADAPDirectoriesParse call. The directoryName,
  2553. ;the directoryDiscriminator, features and serverHint (AppleTalk address for
  2554. ;a PathFinder serving that catalog) are collected for each catalog found
  2555. ;on the network. If buffer is too small to hold all the catalogs found on
  2556. ;the network, a 'kOCEMoreData' error will be returned.
  2557. ;
  2558.  
  2559. DirNetSearchADAPDirectoriesGetPB RECORD 0
  2560. qLink                     ds.l    1                ; offset: $0 (0)
  2561. reserved1                 ds.l    1                ; offset: $4 (4)
  2562. reserved2                 ds.l    1                ; offset: $8 (8)
  2563. ioCompletion             ds.l    1                ; offset: $C (12)
  2564. ioResult                 ds.w    1                ; offset: $10 (16)
  2565. saveA5                     ds.l    1                ; offset: $12 (18)
  2566. reqCode                     ds.w    1                ; offset: $16 (22)
  2567. reserved                 ds.l    2                ; offset: $18 (24)
  2568. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2569. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2570. callID                     ds.l    1                ; offset: $26 (38)
  2571. identity                 ds.l    1                ; offset: $2A (42)
  2572. gReserved1                 ds.l    1                ; offset: $2E (46)
  2573. gReserved2                 ds.l    1                ; offset: $32 (50)
  2574. gReserved3                 ds.l    1                ; offset: $36 (54)
  2575. clientData                 ds.l    1                ; offset: $3A (58)
  2576. getBuffer                 ds.l    1                ; offset: $3E (62)        ;   --> 
  2577. getBufferSize             ds.l    1                ; offset: $42 (66)        ;   --> 
  2578. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  2579. sizeof                     EQU *                    ; size:   $4A (74)
  2580.                         ENDR
  2581. ; typedef ForEachADAPDirectoryUPP         ForEachADAPDirectory
  2582.  
  2583. ;DirNetSearchADAPDirectoriesParse:
  2584. ;This call can be used to extract the results obtained in the 'getBuffer'.
  2585. ;The directoryName, directoryDiscriminator, features and
  2586. ;serverHint (AppleTalk address for a PathFinder serving that catalog) are
  2587. ;returned in each call-back. These values may be used to make an
  2588. ;AddADAPDirectory call.
  2589. ;
  2590. ;Returning TRUE from any call-back will terminate the NetSearchADAPDirectoriesParse request.
  2591. ;
  2592. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  2593. ;of execution as the thread that made the DirNetSearchADAPDirectoriesParse call. That means that the
  2594. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  2595. ;that were in effect when the call was made.  Because of this, the call-back
  2596. ;routine has the same restrictions as the caller of DirNetSearchADAPDirectoriesParse:
  2597. ;if DirNetSearchADAPDirectoriesParse was not called from interrupt level, then the call-
  2598. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  2599. ;like a ioCompletion except that A5 will be preserved for the application.
  2600. ;
  2601.  
  2602. DirNetSearchADAPDirectoriesParsePB RECORD 0
  2603. qLink                     ds.l    1                ; offset: $0 (0)
  2604. reserved1                 ds.l    1                ; offset: $4 (4)
  2605. reserved2                 ds.l    1                ; offset: $8 (8)
  2606. ioCompletion             ds.l    1                ; offset: $C (12)
  2607. ioResult                 ds.w    1                ; offset: $10 (16)
  2608. saveA5                     ds.l    1                ; offset: $12 (18)
  2609. reqCode                     ds.w    1                ; offset: $16 (22)
  2610. reserved                 ds.l    2                ; offset: $18 (24)
  2611. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2612. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2613. callID                     ds.l    1                ; offset: $26 (38)
  2614. identity                 ds.l    1                ; offset: $2A (42)
  2615. gReserved1                 ds.l    1                ; offset: $2E (46)
  2616. gReserved2                 ds.l    1                ; offset: $32 (50)
  2617. gReserved3                 ds.l    1                ; offset: $36 (54)
  2618. clientData                 ds.l    1                ; offset: $3A (58)
  2619. getBuffer                 ds.l    1                ; offset: $3E (62)        ;   --> 
  2620. getBufferSize             ds.l    1                ; offset: $42 (66)        ;   --> 
  2621. eachADAPDirectory         ds.l    1                ; offset: $46 (70)        ;   --> 
  2622. sizeof                     EQU *                    ; size:   $4A (74)
  2623.                         ENDR
  2624. ;DirFindADAPDirectoryByNetSearch:
  2625. ;This call can be used to make a network wide search to find an ADAP catalog.
  2626. ;This call will be supported only by 'ADAP' and involves highly expensive
  2627. ;network operations, so the user is advised to use utmost discretion before
  2628. ;making this call. The catalog is specified using directoryName and discriminator.
  2629. ;If 'addToOCESetup' is true, the catalog will be automatically added to the setup
  2630. ;list and will be visible through the EnumerateDirectories call and also
  2631. ;also a creationID to the directoryRecord will be returned.
  2632. ;If this parameter is set to 'false', the catalog will be added to temporary list
  2633. ;and will be available for making other catalog service calls. The catalogs
  2634. ;which are not in the preference catalog list will not be visible through the
  2635. ;EnumerateDirectories call.
  2636. ;
  2637.  
  2638. DirFindADAPDirectoryByNetSearchPB RECORD 0
  2639. qLink                     ds.l    1                ; offset: $0 (0)
  2640. reserved1                 ds.l    1                ; offset: $4 (4)
  2641. reserved2                 ds.l    1                ; offset: $8 (8)
  2642. ioCompletion             ds.l    1                ; offset: $C (12)
  2643. ioResult                 ds.w    1                ; offset: $10 (16)
  2644. saveA5                     ds.l    1                ; offset: $12 (18)
  2645. reqCode                     ds.w    1                ; offset: $16 (22)
  2646. reserved                 ds.l    2                ; offset: $18 (24)
  2647. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2648. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2649. callID                     ds.l    1                ; offset: $26 (38)
  2650. identity                 ds.l    1                ; offset: $2A (42)
  2651. gReserved1                 ds.l    1                ; offset: $2E (46)
  2652. gReserved2                 ds.l    1                ; offset: $32 (50)
  2653. gReserved3                 ds.l    1                ; offset: $36 (54)
  2654. clientData                 ds.l    1                ; offset: $3A (58)
  2655. directoryName             ds.l    1                ; offset: $3E (62)        ;   --> catalog name 
  2656. discriminator             ds        DirDiscriminator ; offset: $42 (66)        ;   --> discriminate between dup catalog names 
  2657. addToOCESetup             ds.b    1                ; offset: $4A (74)        ;   --> add this catalog to OCE Setup List 
  2658. padByte                     ds.b    1                ; offset: $4B (75)
  2659. directoryRecordCID         ds        CreationID        ; offset: $4C (76)        ;  <--  creationID for the catalog record 
  2660. sizeof                     EQU *                    ; size:   $54 (84)
  2661.                         ENDR
  2662.  
  2663. ;DirAddADAPDirectory:
  2664. ;The catalog specified by 'directoryName' and 'discriminator' will be
  2665. ;added to the list of catalogs maintained by the Toolbox. Once added,
  2666. ;the catalog is available across boots, until the catalog is removed
  2667. ;explicitly through a DirRemoveADAPDirectory call.
  2668. ;If 'serverHint' is not nil, the address provided will be used
  2669. ;to contact a PathFinder for the catalog specified.
  2670. ;If 'serverHint' is nil or does not point to a valid PathFinder server
  2671. ;for that catalog, this call will fail.
  2672. ;If 'addToOCESetup' is true, the catalog will be automatically added to the setup
  2673. ;catalog list and will be visible through EnumerateDirectories calls and
  2674. ;also a creationID to the directoryRecord will be returned.
  2675. ;If this parameter is set to 'false', catalog will be added to temprary list
  2676. ;and will be available for making other catalog service calls. The catalogs
  2677. ;which are not in the setup  list will not be visible through
  2678. ;EnumerateDirectories call.
  2679. ;
  2680.  
  2681. DirAddADAPDirectoryPB    RECORD 0
  2682. qLink                     ds.l    1                ; offset: $0 (0)
  2683. reserved1                 ds.l    1                ; offset: $4 (4)
  2684. reserved2                 ds.l    1                ; offset: $8 (8)
  2685. ioCompletion             ds.l    1                ; offset: $C (12)
  2686. ioResult                 ds.w    1                ; offset: $10 (16)
  2687. saveA5                     ds.l    1                ; offset: $12 (18)
  2688. reqCode                     ds.w    1                ; offset: $16 (22)
  2689. reserved                 ds.l    2                ; offset: $18 (24)
  2690. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2691. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2692. callID                     ds.l    1                ; offset: $26 (38)
  2693. identity                 ds.l    1                ; offset: $2A (42)
  2694. gReserved1                 ds.l    1                ; offset: $2E (46)
  2695. gReserved2                 ds.l    1                ; offset: $32 (50)
  2696. gReserved3                 ds.l    1                ; offset: $36 (54)
  2697. clientData                 ds.l    1                ; offset: $3A (58)
  2698. directoryName             ds.l    1                ; offset: $3E (62)        ;   --> catalog name 
  2699. discriminator             ds        DirDiscriminator ; offset: $42 (66)        ;   --> discriminate between dup catalog names 
  2700. addToOCESetup             ds.b    1                ; offset: $4A (74)        ;   --> add this catalog to OCE Setup 
  2701. padByte                     ds.b    1                ; offset: $4B (75)
  2702. directoryRecordCID         ds        CreationID        ; offset: $4C (76)        ;  <--  creationID for the catalog record 
  2703. sizeof                     EQU *                    ; size:   $54 (84)
  2704.                         ENDR
  2705.  
  2706.  
  2707. ;GetDirectoryInfo:
  2708. ;DirGetDirectoryInfo will do:
  2709. ;
  2710. ;If a 'dsRefNum' is non-Zero, the catalog information for
  2711. ;    the corresponding  PAB will be  returned.
  2712. ; If 'dsRefNum' is zero and 'serverHint' is non-zero, If the
  2713. ; 'serverHint' points to a valid ADAP Catalog Server(Path Finder),
  2714. ; the catalog information (i.e. directoryName, discriminator, features)
  2715. ; for that catalog will be returned.
  2716. ;    If a  valid catalog name and discriminator are provided
  2717. ;    features (Set of capability flags) for that catalog will be returned.
  2718. ;
  2719.  
  2720. DirGetDirectoryInfoPB    RECORD 0
  2721. qLink                     ds.l    1                ; offset: $0 (0)
  2722. reserved1                 ds.l    1                ; offset: $4 (4)
  2723. reserved2                 ds.l    1                ; offset: $8 (8)
  2724. ioCompletion             ds.l    1                ; offset: $C (12)
  2725. ioResult                 ds.w    1                ; offset: $10 (16)
  2726. saveA5                     ds.l    1                ; offset: $12 (18)
  2727. reqCode                     ds.w    1                ; offset: $16 (22)
  2728. reserved                 ds.l    2                ; offset: $18 (24)
  2729. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2730. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2731. callID                     ds.l    1                ; offset: $26 (38)
  2732. identity                 ds.l    1                ; offset: $2A (42)
  2733. gReserved1                 ds.l    1                ; offset: $2E (46)
  2734. gReserved2                 ds.l    1                ; offset: $32 (50)
  2735. gReserved3                 ds.l    1                ; offset: $36 (54)
  2736. clientData                 ds.l    1                ; offset: $3A (58)
  2737. directoryName             ds.l    1                ; offset: $3E (62)        ;   --> catalog name 
  2738. discriminator             ds        DirDiscriminator ; offset: $42 (66)        ;  <--> descriminate between dup catalog names 
  2739. features                 ds.l    1                ; offset: $4A (74)        ;  <--  capability bit flags 
  2740. sizeof                     EQU *                    ; size:   $4E (78)
  2741.                         ENDR
  2742.  
  2743. ; * Note on Access Controls:
  2744. ; * Access control is based on a list model.
  2745. ; * You can get access controls list which gives dsObject and accMask for each dsObject.
  2746. ; * GetAccessControl can be limited to currently supplied identity by setting forCurrentUserOnly.
  2747. ; * There are special DSObjects are defined in ADASTypes.h for each of the category
  2748. ; * supported in ADAS Catalogs. (kOwner, kFriends, kAuthenticatedToCluster, 
  2749. ; * kAuthenticatedToDirectory, kGuest) and DUGetActlDSSpec call can be used
  2750. ; * to obtain appropraiate DSSpec before making set calls to ADAS catalogs.
  2751. ; *
  2752.  
  2753.  
  2754.  
  2755.  
  2756.  
  2757.  
  2758. ;    GetDNodeAccessControlGet:
  2759. ;    This call can be done to get back access control list for a DNode.
  2760. ;    pRLI -> RLI of the DNode whose access control list is sought
  2761. ;    curUserAccMask -> If this is 'true', Access controls for the user specified by
  2762. ;                      the identity parameter will be returned other wise entire list
  2763. ;                      will be returned.
  2764. ;    startingDsObj  -> If this is not nil, list should be started after this object.
  2765. ;    startingPointInclusive -> If staringDsObj is specified, include that in the returned
  2766. ;                              results.
  2767. ;                              
  2768. ;    The results will be collected in the 'getBuffer' supplied by the user.
  2769. ;    If buffer can not hold all the data returned 'daMoreData' error will be returned.
  2770. ;     
  2771. ;    If user receives 'noErr' or 'daMoreData', buffer will contain valid results. A user
  2772. ;    can extract the results in the 'getBuffer' by making 'DsGetDNodeAccessControlParse' call.
  2773. ;    
  2774. ;    Results returned for each DSObject will contain DSSpecPtr and three sets of access mask. 
  2775. ;
  2776. ;
  2777.  
  2778.  
  2779. DirGetDNodeAccessControlGetPB RECORD 0
  2780. qLink                     ds.l    1                ; offset: $0 (0)
  2781. reserved1                 ds.l    1                ; offset: $4 (4)
  2782. reserved2                 ds.l    1                ; offset: $8 (8)
  2783. ioCompletion             ds.l    1                ; offset: $C (12)
  2784. ioResult                 ds.w    1                ; offset: $10 (16)
  2785. saveA5                     ds.l    1                ; offset: $12 (18)
  2786. reqCode                     ds.w    1                ; offset: $16 (22)
  2787. reserved                 ds.l    2                ; offset: $18 (24)
  2788. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2789. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2790. callID                     ds.l    1                ; offset: $26 (38)
  2791. identity                 ds.l    1                ; offset: $2A (42)
  2792. gReserved1                 ds.l    1                ; offset: $2E (46)
  2793. gReserved2                 ds.l    1                ; offset: $32 (50)
  2794. gReserved3                 ds.l    1                ; offset: $36 (54)
  2795. clientData                 ds.l    1                ; offset: $3A (58)
  2796. pRLI                     ds.l    1                ; offset: $3E (62)        ;   -> RLI of the cluster whose access control list is sought  
  2797. bReserved                 ds.l    1                ; offset: $42 (66)        ;   -- unused 
  2798. cReserved                 ds.l    1                ; offset: $46 (70)        ;   -- unused 
  2799. dReserved                 ds.l    1                ; offset: $4A (74)        ;   -- unused 
  2800. eResreved                 ds.l    1                ; offset: $4E (78)        ;  --> 
  2801. forCurrentUserOnly         ds.b    1                ; offset: $52 (82)        ;  -->  
  2802. filler1                     ds.b    1                ; offset: $53 (83)
  2803. startingPoint             ds.l    1                ; offset: $54 (84)        ;  --> starting Point 
  2804. includeStartingPoint     ds.b    1                ; offset: $58 (88)        ;  --> if true return the DsObject specified in starting point 
  2805. filler2                     ds.b    1                ; offset: $59 (89)
  2806. getBuffer                 ds.l    1                ; offset: $5A (90)        ;     -> 
  2807. getBufferSize             ds.l    1                ; offset: $5E (94)        ;   -> 
  2808. sizeof                     EQU *                    ; size:   $62 (98)
  2809.                         ENDR
  2810. ;  The Access Control call-back function is defined as follows: 
  2811. ; typedef ForEachDNodeAccessControlUPP     ForEachDNodeAccessControl
  2812.  
  2813. ;    GetDNodeAccessControlParse:
  2814. ;    After an GetDNodeAccessControlGet call has completed, 
  2815. ;    call GetDNodeAccessControlParse to parse through the buffer that
  2816. ;    that was filled in GetDNodeAccessControlGet.
  2817. ;    
  2818. ;    'eachObject' will be called each time to return to the client a
  2819. ;    DsObject and a set of three accMasks (three long words) for that object.
  2820. ;    Acceesmasks returned apply to the dsObject in the callback :
  2821. ;    1. Currently Active Access mask for the specified DNode.
  2822. ;    2. Default Access mask for any Record in the DNode
  2823. ;    3. Default Access mask for any Attribute in the DNode
  2824. ;    The clientData parameter that you pass in the parameter block will be passed
  2825. ;    to 'eachObject'.  You are free to put anything in clientData - it is intended
  2826. ;    to allow you some way to match the call-back to the original call (for
  2827. ;    example, you make more then one aysynchronous GetDNodeAccessControlGet calls and you want to
  2828. ;    associate returned results in some way).
  2829. ;    
  2830. ;    The client should return FALSE from 'eachObject' to continue
  2831. ;    processing of the GetDNodeAccessControlParse request.  Returning TRUE will
  2832. ;    terminate the GetDNodeAccessControlParse request.
  2833. ;
  2834. ;    For synchronous calls, the call-back routine actually runs as part of the same thread 
  2835. ;    of execution as the thread that made the GetDNodeAccessControlParse call.  That means that the
  2836. ;    same low-memory globals, A5, stack, etc. are in effect during the call-back
  2837. ;    that were in effect when the call was made.  Because of this, the call-back
  2838. ;    routine has the same restrictions as the caller of GetDNodeAccessControlParse:
  2839. ;    if GetDNodeAccessControlParse was not called from interrupt level, then the call-
  2840. ;    back routine can allocate memory. For asynchronous calls, call-back routine is
  2841. ;    like a ioCompletion except that A5 will be preserved for the application.
  2842. ;
  2843. ;
  2844. ;
  2845.  
  2846.  
  2847. DirGetDNodeAccessControlParsePB RECORD 0
  2848. qLink                     ds.l    1                ; offset: $0 (0)
  2849. reserved1                 ds.l    1                ; offset: $4 (4)
  2850. reserved2                 ds.l    1                ; offset: $8 (8)
  2851. ioCompletion             ds.l    1                ; offset: $C (12)
  2852. ioResult                 ds.w    1                ; offset: $10 (16)
  2853. saveA5                     ds.l    1                ; offset: $12 (18)
  2854. reqCode                     ds.w    1                ; offset: $16 (22)
  2855. reserved                 ds.l    2                ; offset: $18 (24)
  2856. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2857. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2858. callID                     ds.l    1                ; offset: $26 (38)
  2859. identity                 ds.l    1                ; offset: $2A (42)
  2860. gReserved1                 ds.l    1                ; offset: $2E (46)
  2861. gReserved2                 ds.l    1                ; offset: $32 (50)
  2862. gReserved3                 ds.l    1                ; offset: $36 (54)
  2863. clientData                 ds.l    1                ; offset: $3A (58)
  2864. pRLI                     ds.l    1                ; offset: $3E (62)        ;   -> RLI of the cluster  
  2865. bReserved                 ds.l    1                ; offset: $42 (66)        ;   -- unused 
  2866. cReserved                 ds.l    1                ; offset: $46 (70)        ;   -- unused 
  2867. dReserved                 ds.l    1                ; offset: $4A (74)        ;   -- unused 
  2868. eachObject                 ds.l    1                ; offset: $4E (78)        ;  --> 
  2869. forCurrentUserOnly         ds.b    1                ; offset: $52 (82)        ;  -->  
  2870. filler1                     ds.b    1                ; offset: $53 (83)
  2871. startingPoint             ds.l    1                ; offset: $54 (84)        ;  --> starting Point 
  2872. includeStartingPoint     ds.b    1                ; offset: $58 (88)        ;  --> if true return the record specified in starting point 
  2873. filler2                     ds.b    1                ; offset: $59 (89)
  2874. getBuffer                 ds.l    1                ; offset: $5A (90)        ;     -> 
  2875. getBufferSize             ds.l    1                ; offset: $5E (94)        ;   -> 
  2876. sizeof                     EQU *                    ; size:   $62 (98)
  2877.                         ENDR
  2878. ;    GetRecordAccessControlGet:
  2879. ;    This call can be done to get back access control list for a RecordID.
  2880. ;    aRecord -> RecordID to which access control list is sought
  2881. ;    curUserAccMask -> If this is 'true', Access controls for the user specified by
  2882. ;                      the identity parameter will be returned other wise entire list
  2883. ;                      will be returned.
  2884. ;    startingDsObj  -> If this is not nil, list should be started after this object.
  2885. ;    startingPointInclusive -> If staringDsObj is specified, include that in the returned
  2886. ;                              results.
  2887. ;                              
  2888. ;    The results will be collected in the 'getBuffer' supplied by the user.
  2889. ;    If buffer can not hold all the data returned 'daMoreData' error will be returned.
  2890. ;     
  2891. ;    If user receives 'noErr' or 'daMoreData', buffer will contain valid results. A user
  2892. ;    can extract the results in the 'getBuffer' by making 'DsGetDNodeAccessControlParse' call.
  2893. ;    
  2894. ;    Results returned for each DSObject will contain DSSpecPtr and accMask. 
  2895. ;
  2896. ;
  2897.  
  2898.  
  2899. DirGetRecordAccessControlGetPB RECORD 0
  2900. qLink                     ds.l    1                ; offset: $0 (0)
  2901. reserved1                 ds.l    1                ; offset: $4 (4)
  2902. reserved2                 ds.l    1                ; offset: $8 (8)
  2903. ioCompletion             ds.l    1                ; offset: $C (12)
  2904. ioResult                 ds.w    1                ; offset: $10 (16)
  2905. saveA5                     ds.l    1                ; offset: $12 (18)
  2906. reqCode                     ds.w    1                ; offset: $16 (22)
  2907. reserved                 ds.l    2                ; offset: $18 (24)
  2908. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2909. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2910. callID                     ds.l    1                ; offset: $26 (38)
  2911. identity                 ds.l    1                ; offset: $2A (42)
  2912. gReserved1                 ds.l    1                ; offset: $2E (46)
  2913. gReserved2                 ds.l    1                ; offset: $32 (50)
  2914. gReserved3                 ds.l    1                ; offset: $36 (54)
  2915. clientData                 ds.l    1                ; offset: $3A (58)
  2916. aRecord                     ds.l    1                ; offset: $3E (62)        ;   -> RecordID to which access control list is sought list is sought  
  2917. bReserved                 ds.l    1                ; offset: $42 (66)        ;   -- unused 
  2918. cReserved                 ds.l    1                ; offset: $46 (70)        ;   -- unused 
  2919. dReserved                 ds.l    1                ; offset: $4A (74)        ;   -- unused 
  2920. eResreved                 ds.l    1                ; offset: $4E (78)        ;  --> 
  2921. forCurrentUserOnly         ds.b    1                ; offset: $52 (82)        ;  -->  
  2922. filler1                     ds.b    1                ; offset: $53 (83)
  2923. startingPoint             ds.l    1                ; offset: $54 (84)        ;  --> starting Point 
  2924. includeStartingPoint     ds.b    1                ; offset: $58 (88)        ;  --> if true return the record specified in starting point 
  2925. filler2                     ds.b    1                ; offset: $59 (89)
  2926. getBuffer                 ds.l    1                ; offset: $5A (90)        ;     -> 
  2927. getBufferSize             ds.l    1                ; offset: $5E (94)        ;   -> 
  2928. sizeof                     EQU *                    ; size:   $62 (98)
  2929.                         ENDR
  2930. ;  The Access Control call-back function is defined as follows: 
  2931. ; typedef ForEachRecordAccessControlUPP  ForEachRecordAccessControl
  2932.  
  2933. ;    GetRecordAccessControlParse:
  2934. ;    After an GetRecordAccessControlGet call has completed, 
  2935. ;    call GetRecordAccessControlParse to parse through the buffer that
  2936. ;    that was filled in GetRecordAccessControlGet.
  2937. ;    
  2938. ;    'eachObject' will be called each time to return to the client a
  2939. ;    DsObject and a set of three accMasks (three long words) for that object.
  2940. ;    Acceesmasks returned apply to the dsObject in the callback :
  2941. ;    1. Active Access mask for the DNode Containing the Record.
  2942. ;    2. Active Access mask for the Record specified.
  2943. ;    3. Defualt Access mask for Attributes in the record.
  2944. ;    The clientData parameter that you pass in the parameter block will be passed
  2945. ;    to 'eachObject'.  You are free to put anything in clientData - it is intended
  2946. ;    to allow you some way to match the call-back to the original call (for
  2947. ;    example, you make more then one aysynchronous GetRecordAccessControlGet calls and you want to
  2948. ;    associate returned results in some way).
  2949. ;    
  2950. ;    The client should return FALSE from 'eachObject' to continue
  2951. ;    processing of the GetRecordAccessControlParse request.  Returning TRUE will
  2952. ;    terminate the GetRecordAccessControlParse request.
  2953. ;
  2954. ;    For synchronous calls, the call-back routine actually runs as part of the same thread 
  2955. ;    of execution as the thread that made the GetRecordAccessControlParse call.  That means that the
  2956. ;    same low-memory globals, A5, stack, etc. are in effect during the call-back
  2957. ;    that were in effect when the call was made.  Because of this, the call-back
  2958. ;    routine has the same restrictions as the caller of GetRecordAccessControlParse:
  2959. ;    if GetRecordAccessControlParse was not called from interrupt level, then the call-
  2960. ;    back routine can allocate memory. For asynchronous calls, call-back routine is
  2961. ;    like a ioCompletion except that A5 will be preserved for the application.
  2962. ;
  2963. ;
  2964. ;
  2965.  
  2966.  
  2967. DirGetRecordAccessControlParsePB RECORD 0
  2968. qLink                     ds.l    1                ; offset: $0 (0)
  2969. reserved1                 ds.l    1                ; offset: $4 (4)
  2970. reserved2                 ds.l    1                ; offset: $8 (8)
  2971. ioCompletion             ds.l    1                ; offset: $C (12)
  2972. ioResult                 ds.w    1                ; offset: $10 (16)
  2973. saveA5                     ds.l    1                ; offset: $12 (18)
  2974. reqCode                     ds.w    1                ; offset: $16 (22)
  2975. reserved                 ds.l    2                ; offset: $18 (24)
  2976. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2977. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2978. callID                     ds.l    1                ; offset: $26 (38)
  2979. identity                 ds.l    1                ; offset: $2A (42)
  2980. gReserved1                 ds.l    1                ; offset: $2E (46)
  2981. gReserved2                 ds.l    1                ; offset: $32 (50)
  2982. gReserved3                 ds.l    1                ; offset: $36 (54)
  2983. clientData                 ds.l    1                ; offset: $3A (58)
  2984. aRecord                     ds.l    1                ; offset: $3E (62)        ;   -> RecordID to which access control list is sought list is sought  
  2985. bReserved                 ds.l    1                ; offset: $42 (66)        ;   -- unused 
  2986. cReserved                 ds.l    1                ; offset: $46 (70)        ;   -- unused 
  2987. dReserved                 ds.l    1                ; offset: $4A (74)        ;   -- unused 
  2988. eachObject                 ds.l    1                ; offset: $4E (78)        ;  --> 
  2989. forCurrentUserOnly         ds.b    1                ; offset: $52 (82)        ;  -->  
  2990. filler1                     ds.b    1                ; offset: $53 (83)
  2991. startingPoint             ds.l    1                ; offset: $54 (84)        ;  --> starting Point 
  2992. includeStartingPoint     ds.b    1                ; offset: $58 (88)        ;  --> if true return the record specified in starting point 
  2993. filler2                     ds.b    1                ; offset: $59 (89)
  2994. getBuffer                 ds.l    1                ; offset: $5A (90)        ;     -> 
  2995. getBufferSize             ds.l    1                ; offset: $5E (94)        ;   -> 
  2996. sizeof                     EQU *                    ; size:   $62 (98)
  2997.                         ENDR
  2998. ;    GetAttributeAccessControlGet:
  2999. ;    This call can be done to get back access control list for a attributeType with in a RecordID.
  3000. ;    aRecord -> RecordID to which access control list is sought
  3001. ;    aType    -> Attribute Type to which access controls are sought
  3002. ;    curUserAccMask -> If this is 'true', Access controls for the user specified by
  3003. ;                      the identity parameter will be returned other wise entire list
  3004. ;                      will be returned.
  3005. ;    startingDsObj  -> If this is not nil, list should be started after this object.
  3006. ;    startingPointInclusive -> If staringDsObj is specified, include that in the returned
  3007. ;                              results.
  3008. ;                              
  3009. ;    The results will be collected in the 'getBuffer' supplied by the user.
  3010. ;    If buffer can not hold all the data returned 'daMoreData' error will be returned.
  3011. ;     
  3012. ;    If user receives 'noErr' or 'daMoreData', buffer will contain valid results. A user
  3013. ;    can extract the results in the 'getBuffer' by making 'DsGetDNodeAccessControlParse' call.
  3014. ;    
  3015. ;    Results returned for each DSObject will contain DSSpecPtr and accMask. 
  3016. ;
  3017. ;
  3018.  
  3019.  
  3020. DirGetAttributeAccessControlGetPB RECORD 0
  3021. qLink                     ds.l    1                ; offset: $0 (0)
  3022. reserved1                 ds.l    1                ; offset: $4 (4)
  3023. reserved2                 ds.l    1                ; offset: $8 (8)
  3024. ioCompletion             ds.l    1                ; offset: $C (12)
  3025. ioResult                 ds.w    1                ; offset: $10 (16)
  3026. saveA5                     ds.l    1                ; offset: $12 (18)
  3027. reqCode                     ds.w    1                ; offset: $16 (22)
  3028. reserved                 ds.l    2                ; offset: $18 (24)
  3029. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3030. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3031. callID                     ds.l    1                ; offset: $26 (38)
  3032. identity                 ds.l    1                ; offset: $2A (42)
  3033. gReserved1                 ds.l    1                ; offset: $2E (46)
  3034. gReserved2                 ds.l    1                ; offset: $32 (50)
  3035. gReserved3                 ds.l    1                ; offset: $36 (54)
  3036. clientData                 ds.l    1                ; offset: $3A (58)
  3037. aRecord                     ds.l    1                ; offset: $3E (62)        ;   -> RecordID to which access control list is sought list is sought  
  3038. aType                     ds.l    1                ; offset: $42 (66)        ;   -> Attribute Type to which access controls are sought          
  3039. cReserved                 ds.l    1                ; offset: $46 (70)        ;   -- unused 
  3040. dReserved                 ds.l    1                ; offset: $4A (74)        ;   -- unused 
  3041. eResreved                 ds.l    1                ; offset: $4E (78)        ;  --> 
  3042. forCurrentUserOnly         ds.b    1                ; offset: $52 (82)        ;  -->  
  3043. filler1                     ds.b    1                ; offset: $53 (83)
  3044. startingPoint             ds.l    1                ; offset: $54 (84)        ;  --> starting Point 
  3045. includeStartingPoint     ds.b    1                ; offset: $58 (88)        ;  --> if true return the record specified in starting point 
  3046. filler2                     ds.b    1                ; offset: $59 (89)
  3047. getBuffer                 ds.l    1                ; offset: $5A (90)        ;     -> 
  3048. getBufferSize             ds.l    1                ; offset: $5E (94)        ;   -> 
  3049. sizeof                     EQU *                    ; size:   $62 (98)
  3050.                         ENDR
  3051. ;  The Access Control call-back function is defined as follows: 
  3052. ; typedef ForEachAttributeAccessControlUPP  ForEachAttributeAccessControl
  3053.  
  3054. ;    GetAttributeAccessControlParse:
  3055. ;    After an GetAttributeAccessControlGet call has completed, 
  3056. ;    call GetAttributeAccessControlParse to parse through the buffer that
  3057. ;    that was filled in GetAttributeAccessControlGet.
  3058. ;    
  3059. ;    'eachObject' will be called each time to return to the client a
  3060. ;    DsObject and a set of three accMasks (three long words) for that object.
  3061. ;    Acceesmasks returned apply to the dsObject in the callback :
  3062. ;    1. Active Access mask for the DNode Containing the Attribute.
  3063. ;    2. Active Access mask for the Record in the Containing the Attribute.
  3064. ;    3. Active Access mask for the specified Attribute.
  3065. ;    The clientData parameter that you pass in the parameter block will be passed
  3066. ;    to 'eachObject'.  You are free to put anything in clientData - it is intended
  3067. ;    to allow you some way to match the call-back to the original call (for
  3068. ;    example, you make more then one aysynchronous GetAttributeAccessControlGet calls and you want to
  3069. ;    associate returned results in some way).
  3070. ;    
  3071. ;    The client should return FALSE from 'eachObject' to continue
  3072. ;    processing of the GetAttributeAccessControlParse request.  Returning TRUE will
  3073. ;    terminate the GetAttributeAccessControlParse request.
  3074. ;
  3075. ;    For synchronous calls, the call-back routine actually runs as part of the same thread 
  3076. ;    of execution as the thread that made the GetAttributeAccessControlParse call.  That means that the
  3077. ;    same low-memory globals, A5, stack, etc. are in effect during the call-back
  3078. ;    that were in effect when the call was made.  Because of this, the call-back
  3079. ;    routine has the same restrictions as the caller of GetAttributeAccessControlParse:
  3080. ;    if GetAttributeAccessControlParse was not called from interrupt level, then the call-
  3081. ;    back routine can allocate memory. For asynchronous calls, call-back routine is
  3082. ;    like a ioCompletion except that A5 will be preserved for the application.
  3083. ;
  3084. ;
  3085. ;
  3086.  
  3087.  
  3088. DirGetAttributeAccessControlParsePB RECORD 0
  3089. qLink                     ds.l    1                ; offset: $0 (0)
  3090. reserved1                 ds.l    1                ; offset: $4 (4)
  3091. reserved2                 ds.l    1                ; offset: $8 (8)
  3092. ioCompletion             ds.l    1                ; offset: $C (12)
  3093. ioResult                 ds.w    1                ; offset: $10 (16)
  3094. saveA5                     ds.l    1                ; offset: $12 (18)
  3095. reqCode                     ds.w    1                ; offset: $16 (22)
  3096. reserved                 ds.l    2                ; offset: $18 (24)
  3097. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3098. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3099. callID                     ds.l    1                ; offset: $26 (38)
  3100. identity                 ds.l    1                ; offset: $2A (42)
  3101. gReserved1                 ds.l    1                ; offset: $2E (46)
  3102. gReserved2                 ds.l    1                ; offset: $32 (50)
  3103. gReserved3                 ds.l    1                ; offset: $36 (54)
  3104. clientData                 ds.l    1                ; offset: $3A (58)
  3105. aRecord                     ds.l    1                ; offset: $3E (62)        ;   -> RecordID to which access control list is sought list is sought  
  3106. aType                     ds.l    1                ; offset: $42 (66)        ;   -> Attribute Type to which access controls are sought          
  3107. cReserved                 ds.l    1                ; offset: $46 (70)        ;   -- unused 
  3108. dReserved                 ds.l    1                ; offset: $4A (74)        ;   -- unused 
  3109. eachObject                 ds.l    1                ; offset: $4E (78)        ;  --> 
  3110. forCurrentUserOnly         ds.b    1                ; offset: $52 (82)        ;  -->  
  3111. filler1                     ds.b    1                ; offset: $53 (83)
  3112. startingPoint             ds.l    1                ; offset: $54 (84)        ;  --> starting Point 
  3113. includeStartingPoint     ds.b    1                ; offset: $58 (88)        ;  --> if true return the record specified in starting point 
  3114. filler2                     ds.b    1                ; offset: $59 (89)
  3115. getBuffer                 ds.l    1                ; offset: $5A (90)        ;     -> 
  3116. getBufferSize             ds.l    1                ; offset: $5E (94)        ;   -> 
  3117. sizeof                     EQU *                    ; size:   $62 (98)
  3118.                         ENDR
  3119.  
  3120.  
  3121.  
  3122.  
  3123.  
  3124. ;MapPathNameToDNodeNumber:
  3125. ;This call maps a given PathName within a catalog to its DNodeNumber.
  3126. ;
  3127.  
  3128. DirMapPathNameToDNodeNumberPB RECORD 0
  3129. qLink                     ds.l    1                ; offset: $0 (0)
  3130. reserved1                 ds.l    1                ; offset: $4 (4)
  3131. reserved2                 ds.l    1                ; offset: $8 (8)
  3132. ioCompletion             ds.l    1                ; offset: $C (12)
  3133. ioResult                 ds.w    1                ; offset: $10 (16)
  3134. saveA5                     ds.l    1                ; offset: $12 (18)
  3135. reqCode                     ds.w    1                ; offset: $16 (22)
  3136. reserved                 ds.l    2                ; offset: $18 (24)
  3137. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3138. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3139. callID                     ds.l    1                ; offset: $26 (38)
  3140. identity                 ds.l    1                ; offset: $2A (42)
  3141. gReserved1                 ds.l    1                ; offset: $2E (46)
  3142. gReserved2                 ds.l    1                ; offset: $32 (50)
  3143. gReserved3                 ds.l    1                ; offset: $36 (54)
  3144. clientData                 ds.l    1                ; offset: $3A (58)
  3145. directoryName             ds.l    1                ; offset: $3E (62)        ;   --> catalog name 
  3146. discriminator             ds        DirDiscriminator ; offset: $42 (66)        ;   --> discriminator 
  3147. dNodeNumber                 ds.l    1                ; offset: $4A (74)        ;  <--  dNodenumber to the path 
  3148. path                     ds.l    1                ; offset: $4E (78)        ;   --> Path Name to be mapped 
  3149. sizeof                     EQU *                    ; size:   $52 (82)
  3150.                         ENDR
  3151. ;PathName in the path field will be mapped to the cooresponding dNodeNumber and
  3152. ;returned in the DNodeNumber field. directoryName and descriminator Fields are
  3153. ;ignored. DSRefNum is used to identify the catalog.
  3154. ;
  3155.  
  3156.  
  3157.  
  3158. ;MapDNodeNumberToPathName:
  3159. ;This call will map a given DNodeNumber with in a catalog to the
  3160. ;corresponding PathName.
  3161. ;
  3162.  
  3163. DirMapDNodeNumberToPathNamePB RECORD 0
  3164. qLink                     ds.l    1                ; offset: $0 (0)
  3165. reserved1                 ds.l    1                ; offset: $4 (4)
  3166. reserved2                 ds.l    1                ; offset: $8 (8)
  3167. ioCompletion             ds.l    1                ; offset: $C (12)
  3168. ioResult                 ds.w    1                ; offset: $10 (16)
  3169. saveA5                     ds.l    1                ; offset: $12 (18)
  3170. reqCode                     ds.w    1                ; offset: $16 (22)
  3171. reserved                 ds.l    2                ; offset: $18 (24)
  3172. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3173. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3174. callID                     ds.l    1                ; offset: $26 (38)
  3175. identity                 ds.l    1                ; offset: $2A (42)
  3176. gReserved1                 ds.l    1                ; offset: $2E (46)
  3177. gReserved2                 ds.l    1                ; offset: $32 (50)
  3178. gReserved3                 ds.l    1                ; offset: $36 (54)
  3179. clientData                 ds.l    1                ; offset: $3A (58)
  3180. directoryName             ds.l    1                ; offset: $3E (62)        ;   --> catalog name 
  3181. discriminator             ds        DirDiscriminator ; offset: $42 (66)        ;   --> discriminator 
  3182. dNodeNumber                 ds.l    1                ; offset: $4A (74)        ;   --> dNodenumber to be mapped 
  3183. path                     ds.l    1                ; offset: $4E (78)        ;  <--  Packed Path Name returned 
  3184. lengthOfPathName         ds.w    1                ; offset: $52 (82)        ;   --> length of packed pathName structure
  3185. sizeof                     EQU *                    ; size:   $54 (84)
  3186.                         ENDR
  3187. ;dNodeNumber in the DNodeNumber field will be mapped to the cooresponding
  3188. ;pathName and returned in the PackedPathName field.
  3189. ;lengthOfPathName is to be set the length of pathName structure.
  3190. ;If length of PackedPathName is larger then the lengthOfPathName, kOCEMoreData
  3191. ;OSErr will be returned.
  3192. ;
  3193.  
  3194. ;GetLocalNetworkSpec:
  3195. ;This call will return the Local NetworkSpec. Client should supply
  3196. ;an RString big enough to hold the NetworkSpec.
  3197. ;
  3198.  
  3199. DirGetLocalNetworkSpecPB RECORD 0
  3200. qLink                     ds.l    1                ; offset: $0 (0)
  3201. reserved1                 ds.l    1                ; offset: $4 (4)
  3202. reserved2                 ds.l    1                ; offset: $8 (8)
  3203. ioCompletion             ds.l    1                ; offset: $C (12)
  3204. ioResult                 ds.w    1                ; offset: $10 (16)
  3205. saveA5                     ds.l    1                ; offset: $12 (18)
  3206. reqCode                     ds.w    1                ; offset: $16 (22)
  3207. reserved                 ds.l    2                ; offset: $18 (24)
  3208. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3209. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3210. callID                     ds.l    1                ; offset: $26 (38)
  3211. identity                 ds.l    1                ; offset: $2A (42)
  3212. gReserved1                 ds.l    1                ; offset: $2E (46)
  3213. gReserved2                 ds.l    1                ; offset: $32 (50)
  3214. gReserved3                 ds.l    1                ; offset: $36 (54)
  3215. clientData                 ds.l    1                ; offset: $3A (58)
  3216. directoryName             ds.l    1                ; offset: $3E (62)        ;   --> catalog name 
  3217. discriminator             ds        DirDiscriminator ; offset: $42 (66)        ;   --> discriminator 
  3218. networkSpec                 ds.l    1                ; offset: $4A (74)        ;  <--  NetworkSpec 
  3219. sizeof                     EQU *                    ; size:   $4E (78)
  3220.                         ENDR
  3221. ;PathName in the path field must be set to nil. internetName should be large
  3222. ;enough to hold the internetName. InterNetname returned indicates path finder's
  3223. ;local internet (configured by administrator).
  3224. ;
  3225.  
  3226. ;GetDNodeInfo:
  3227. ;This call will return the information (internetName and descriptor)
  3228. ;for the given RLI of a DNode.
  3229. ;
  3230.  
  3231. DirGetDNodeInfoPB        RECORD 0
  3232. qLink                     ds.l    1                ; offset: $0 (0)
  3233. reserved1                 ds.l    1                ; offset: $4 (4)
  3234. reserved2                 ds.l    1                ; offset: $8 (8)
  3235. ioCompletion             ds.l    1                ; offset: $C (12)
  3236. ioResult                 ds.w    1                ; offset: $10 (16)
  3237. saveA5                     ds.l    1                ; offset: $12 (18)
  3238. reqCode                     ds.w    1                ; offset: $16 (22)
  3239. reserved                 ds.l    2                ; offset: $18 (24)
  3240. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3241. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3242. callID                     ds.l    1                ; offset: $26 (38)
  3243. identity                 ds.l    1                ; offset: $2A (42)
  3244. gReserved1                 ds.l    1                ; offset: $2E (46)
  3245. gReserved2                 ds.l    1                ; offset: $32 (50)
  3246. gReserved3                 ds.l    1                ; offset: $36 (54)
  3247. clientData                 ds.l    1                ; offset: $3A (58)
  3248. pRLI                     ds.l    1                ; offset: $3E (62)        ;   --> packed RLI whose info is requested 
  3249. descriptor                 ds.l    1                ; offset: $42 (66)        ;  <--  dNode descriptor 
  3250. networkSpec                 ds.l    1                ; offset: $46 (70)        ;  <--  cluster's networkSpec if kIsCluster 
  3251. sizeof                     EQU *                    ; size:   $4A (74)
  3252.                         ENDR
  3253. ;If DnodeNumber is set to a non zero value, path should be set to nil.
  3254. ;if DnodeNumber is set to zero, pathName should point to a packed path name.
  3255. ;internetName should be large enough to hold
  3256. ;the internetName. (If the internetName is same as the one got by
  3257. ;GetLocalInternetName call, it indicates cluster is reachable  without
  3258. ;forwarders, --> Tell me if I am wrong)
  3259. ;
  3260.  
  3261.  
  3262. ;DirCreatePersonalDirectory:
  3263. ;A new  personal catalog can be created by specifying an FSSpec for
  3264. ;the file. If a file already exists dupFNErr will be returned. This call is
  3265. ;supported 'synchronous' mode only.
  3266. ;
  3267.  
  3268. DirCreatePersonalDirectoryPB RECORD 0
  3269. qLink                     ds.l    1                ; offset: $0 (0)
  3270. reserved1                 ds.l    1                ; offset: $4 (4)
  3271. reserved2                 ds.l    1                ; offset: $8 (8)
  3272. ioCompletion             ds.l    1                ; offset: $C (12)
  3273. ioResult                 ds.w    1                ; offset: $10 (16)
  3274. saveA5                     ds.l    1                ; offset: $12 (18)
  3275. reqCode                     ds.w    1                ; offset: $16 (22)
  3276. reserved                 ds.l    2                ; offset: $18 (24)
  3277. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3278. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3279. callID                     ds.l    1                ; offset: $26 (38)
  3280. identity                 ds.l    1                ; offset: $2A (42)
  3281. gReserved1                 ds.l    1                ; offset: $2E (46)
  3282. gReserved2                 ds.l    1                ; offset: $32 (50)
  3283. gReserved3                 ds.l    1                ; offset: $36 (54)
  3284. clientData                 ds.l    1                ; offset: $3A (58)
  3285. fsSpec                     ds.l    1                ; offset: $3E (62)        ;   --> FSSpec for the Personal Catalog 
  3286. fdType                     ds.l    1                ; offset: $42 (66)        ;   --> file type for the Personal Catalog 
  3287. fdCreator                 ds.l    1                ; offset: $46 (70)        ;   --> file creator for the Personal Catalog 
  3288. sizeof                     EQU *                    ; size:   $4A (74)
  3289.                         ENDR
  3290. ;DirOpenPersonalDirectory:
  3291. ;An existing personal catalog can be opened using this call.
  3292. ;User can specify the personal catalog by FSSpec for the AddressBook file.
  3293. ;'accessRequested' field specifies open permissions. 'fsRdPerm'  & 'fsRdWrPerm'
  3294. ;are the only accepted open modes for the address book.
  3295. ;When the call completes successfully, a dsRefNum will be returned. The 'dsRefNum'
  3296. ;field is in the DSParamBlockHeader. In addittion 'accessGranted' indicates
  3297. ;actual permission with personal catalog is opened and 'features' indicate the capabilty flags
  3298. ;associated with the personal catalog.
  3299. ;This call is supported 'synchronous' mode only.
  3300. ;
  3301.  
  3302.  
  3303. DirOpenPersonalDirectoryPB RECORD 0
  3304. qLink                     ds.l    1                ; offset: $0 (0)
  3305. reserved1                 ds.l    1                ; offset: $4 (4)
  3306. reserved2                 ds.l    1                ; offset: $8 (8)
  3307. ioCompletion             ds.l    1                ; offset: $C (12)
  3308. ioResult                 ds.w    1                ; offset: $10 (16)
  3309. saveA5                     ds.l    1                ; offset: $12 (18)
  3310. reqCode                     ds.w    1                ; offset: $16 (22)
  3311. reserved                 ds.l    2                ; offset: $18 (24)
  3312. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3313. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3314. callID                     ds.l    1                ; offset: $26 (38)
  3315. identity                 ds.l    1                ; offset: $2A (42)
  3316. gReserved1                 ds.l    1                ; offset: $2E (46)
  3317. gReserved2                 ds.l    1                ; offset: $32 (50)
  3318. gReserved3                 ds.l    1                ; offset: $36 (54)
  3319. clientData                 ds.l    1                ; offset: $3A (58)
  3320. fsSpec                     ds.l    1                ; offset: $3E (62)        ;   --> Open an existing Personal Catalog 
  3321. accessRequested             ds.b    1                ; offset: $42 (66)        ;   --> Open: permissions Requested(byte)
  3322. accessGranted             ds.b    1                ; offset: $43 (67)        ;   <-- Open: permissions (byte) (Granted)
  3323. features                 ds.l    1                ; offset: $44 (68)        ;  <--  features for Personal Catalog 
  3324. sizeof                     EQU *                    ; size:   $48 (72)
  3325.                         ENDR
  3326. ;DirClosePersonalDirectory: This call lets a client close AddressBook opened by DirOpenPersonalDirectory.
  3327. ;The Personal Catalog specified by the 'dsRefNum' will be closed.
  3328. ;This call is supported 'synchronous' mode only.
  3329. ;
  3330.  
  3331. DirClosePersonalDirectoryPB RECORD 0
  3332. qLink                     ds.l    1                ; offset: $0 (0)
  3333. reserved1                 ds.l    1                ; offset: $4 (4)
  3334. reserved2                 ds.l    1                ; offset: $8 (8)
  3335. ioCompletion             ds.l    1                ; offset: $C (12)
  3336. ioResult                 ds.w    1                ; offset: $10 (16)
  3337. saveA5                     ds.l    1                ; offset: $12 (18)
  3338. reqCode                     ds.w    1                ; offset: $16 (22)
  3339. reserved                 ds.l    2                ; offset: $18 (24)
  3340. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3341. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3342. callID                     ds.l    1                ; offset: $26 (38)
  3343. identity                 ds.l    1                ; offset: $2A (42)
  3344. gReserved1                 ds.l    1                ; offset: $2E (46)
  3345. gReserved2                 ds.l    1                ; offset: $32 (50)
  3346. gReserved3                 ds.l    1                ; offset: $36 (54)
  3347. clientData                 ds.l    1                ; offset: $3A (58)
  3348. sizeof                     EQU *                    ; size:   $3E (62)
  3349.                         ENDR
  3350.  
  3351. ;DirMakePersonalDirectoryRLI: With this call a client can make an RLI
  3352. ;for a Personal Catalog opened by DirOpenPersonalDirectory Call.
  3353. ;A packed RLI is created for the Personal Catalog specified by the 'dsRefNum'.
  3354. ;If a client has a need to make the AddressBook reference to persistent
  3355. ;acrross boots it should make use of this call. In the current implementaion
  3356. ;PackedRLI has an embeeded System7.0 'alias'. If in later time
  3357. ;If client has a need to make reference to the AddressBook, it must use
  3358. ;ADAPLibrary call 'DUExtractAlias' and resole the 'alias' to 'FSSpec' and
  3359. ;make DirOpenPersonalDirectory call to get a 'dsRefNum'.
  3360. ;  'fromFSSpec'            FSPecPtr from which relative alias to be created. If nil,
  3361. ;                        absolute alias is created.
  3362. ; 'pRLIBufferSize' indicates the size of buffer pointed by 'pRLI'
  3363. ; 'pRLISize'    indicates the actual length of 'pRLI'. If the call
  3364. ;                        fails with 'kOCEMoreData' error a client can reissue
  3365. ;                    this call with a larger buffer of this length.
  3366. ;  'pRLI' is pointer to the buffer in which 'PackedRLI' is
  3367. ;  returned.
  3368. ;This call is supported in 'synchronous' mode only.
  3369. ;
  3370.  
  3371. DirMakePersonalDirectoryRLIPB RECORD 0
  3372. qLink                     ds.l    1                ; offset: $0 (0)
  3373. reserved1                 ds.l    1                ; offset: $4 (4)
  3374. reserved2                 ds.l    1                ; offset: $8 (8)
  3375. ioCompletion             ds.l    1                ; offset: $C (12)
  3376. ioResult                 ds.w    1                ; offset: $10 (16)
  3377. saveA5                     ds.l    1                ; offset: $12 (18)
  3378. reqCode                     ds.w    1                ; offset: $16 (22)
  3379. reserved                 ds.l    2                ; offset: $18 (24)
  3380. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3381. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3382. callID                     ds.l    1                ; offset: $26 (38)
  3383. identity                 ds.l    1                ; offset: $2A (42)
  3384. gReserved1                 ds.l    1                ; offset: $2E (46)
  3385. gReserved2                 ds.l    1                ; offset: $32 (50)
  3386. gReserved3                 ds.l    1                ; offset: $36 (54)
  3387. clientData                 ds.l    1                ; offset: $3A (58)
  3388. fromFSSpec                 ds.l    1                ; offset: $3E (62)        ;   --> FSSpec for creating relative alia 
  3389. pRLIBufferSize             ds.w    1                ; offset: $42 (66)        ;   --> Length of 'pRLI' buffer 
  3390. pRLISize                 ds.w    1                ; offset: $44 (68)        ;  <--  Length of actual 'pRLI' 
  3391. pRLI                     ds.l    1                ; offset: $46 (70)        ;  <--  pRLI for the specified AddressBook 
  3392. sizeof                     EQU *                    ; size:   $4A (74)
  3393.                         ENDR
  3394.  
  3395. ; *****************************************************************************
  3396. ;The calls described below apply only for CSAM Drivers:
  3397. ;
  3398. ;The following three calls provide capability to Install/Remove a CSAM at RunTime.
  3399. ;    DirAddDSAM
  3400. ;    DirRemoveDSAM
  3401. ;    DirInstantiateDSAM
  3402. ;
  3403. ;The following two calls provide capability to Install/Remove a CSAM Catalog at RunTime.
  3404. ;    DirAddDSAMDirectory
  3405. ;    DirRemoveDirectory
  3406. ;
  3407. ;DirGetDirectoryIcon call is used by clients to get any special icon associated
  3408. ;with a CSAM catalog.
  3409. ;
  3410. ;****************************************************************************
  3411.  
  3412.  
  3413. ;DirAddDSAM: This call can be used to inorm the availability of a CSAM file
  3414. ;after discovering the CSAM file.
  3415. ;    dsamName -> is generic CSAM name e.g. Untitled X.500 directory
  3416. ;    dsamSignature -> could be generic CSAM kind e.g. 'X500'.
  3417. ;    fsSpec -> is the FileSpec for the file containing CSAM resources.
  3418. ;If the call is successfull 'DSAMRecordCID' will be returned. If the
  3419. ;call returns 'daDSAMRecordCIDExists', record was already there and
  3420. ;'dsamRecordCID' will be returned.
  3421. ;This call can be done only in synchronous mode.
  3422. ;
  3423.  
  3424. DirAddDSAMPB            RECORD 0
  3425. qLink                     ds.l    1                ; offset: $0 (0)
  3426. reserved1                 ds.l    1                ; offset: $4 (4)
  3427. reserved2                 ds.l    1                ; offset: $8 (8)
  3428. ioCompletion             ds.l    1                ; offset: $C (12)
  3429. ioResult                 ds.w    1                ; offset: $10 (16)
  3430. saveA5                     ds.l    1                ; offset: $12 (18)
  3431. reqCode                     ds.w    1                ; offset: $16 (22)
  3432. reserved                 ds.l    2                ; offset: $18 (24)
  3433. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3434. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3435. callID                     ds.l    1                ; offset: $26 (38)
  3436. identity                 ds.l    1                ; offset: $2A (42)
  3437. gReserved1                 ds.l    1                ; offset: $2E (46)
  3438. gReserved2                 ds.l    1                ; offset: $32 (50)
  3439. gReserved3                 ds.l    1                ; offset: $36 (54)
  3440. clientData                 ds.l    1                ; offset: $3A (58)
  3441. dsamRecordCID             ds        CreationID        ; offset: $3E (62)        ;  <--  CreationID for the CSAM record 
  3442. dsamName                 ds.l    1                ; offset: $46 (70)        ;   --> CSAM name 
  3443. dsamKind                 ds.l    1                ; offset: $4A (74)        ;   --> CSAM kind 
  3444. fsSpec                     ds.l    1                ; offset: $4E (78)        ;   --> FSSpec for the file containing CSAM 
  3445. sizeof                     EQU *                    ; size:   $52 (82)
  3446.                         ENDR
  3447. ;DirInstantiateDSAM: This call should be used by the CSAM driver in response
  3448. ;Driver Open call to indicate the toolbox about the availability of the CSAM.
  3449. ;    dsamName -> is generic CSAM name e.g. Untitled X.500 directory
  3450. ;    dsamKind -> could be generic CSAM kind e.g. 'X500'.
  3451. ;    dsamData -> pointer to private DSAMData. This will be paased back to the CSAM
  3452. ;    when the CSAM functions (DSAMDirProc,DSAMDirParseProc, DSAMAuthProc) are called.
  3453. ;    CSAM should already be setup using DirAddDSAM call.
  3454. ;    DSAMDirProc -> This procedure will be called when  any catalog service
  3455. ;    call intended for the CSAM (other then parse calls)
  3456. ;    DSAMDirParseProc -> This procedure will be called when any of the parse calls
  3457. ;    are called.
  3458. ;    DSAMAuthProc -> This procedure will be called when any of the Authentication Calls
  3459. ;    are made to the CSAM. If the CSAM does not support authentication, this can be nil.
  3460. ;This call can be done only in synchronous mode.
  3461. ;
  3462.  
  3463. ; typedef DSAMDirUPP                     DSAMDirProc
  3464.  
  3465. ; typedef DSAMDirParseUPP                 DSAMDirParseProc
  3466.  
  3467. ; typedef DSAMAuthUPP                     DSAMAuthProc
  3468.  
  3469. DirInstantiateDSAMPB    RECORD 0
  3470. qLink                     ds.l    1                ; offset: $0 (0)
  3471. reserved1                 ds.l    1                ; offset: $4 (4)
  3472. reserved2                 ds.l    1                ; offset: $8 (8)
  3473. ioCompletion             ds.l    1                ; offset: $C (12)
  3474. ioResult                 ds.w    1                ; offset: $10 (16)
  3475. saveA5                     ds.l    1                ; offset: $12 (18)
  3476. reqCode                     ds.w    1                ; offset: $16 (22)
  3477. reserved                 ds.l    2                ; offset: $18 (24)
  3478. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3479. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3480. callID                     ds.l    1                ; offset: $26 (38)
  3481. identity                 ds.l    1                ; offset: $2A (42)
  3482. gReserved1                 ds.l    1                ; offset: $2E (46)
  3483. gReserved2                 ds.l    1                ; offset: $32 (50)
  3484. gReserved3                 ds.l    1                ; offset: $36 (54)
  3485. clientData                 ds.l    1                ; offset: $3A (58)
  3486. dsamName                 ds.l    1                ; offset: $3E (62)        ;   --> dsamName name 
  3487. dsamKind                 ds.l    1                ; offset: $42 (66)        ;   --> DSAMKind 
  3488. dsamData                 ds.l    1                ; offset: $46 (70)        ;   --> dsamData  
  3489. dsamDirProc                 ds.l    1                ; offset: $4A (74)        ;   --> of type DSAMDirProc: for catalog service calls 
  3490. dsamDirParseProc         ds.l    1                ; offset: $4E (78)        ;   --> of type DSAMDirParseProc: for catalog service parse calls 
  3491. dsamAuthProc             ds.l    1                ; offset: $52 (82)        ;   --> of type DSAMAuthProc: for authetication service calls 
  3492. sizeof                     EQU *                    ; size:   $56 (86)
  3493.                         ENDR
  3494.  
  3495. ;DirRemoveDSAM: This call can be used to remove  a CSAM file from the OCE Setup.
  3496. ;    dsamRecordCID -> is the creationID of the CSAM record.
  3497. ;This call can be made only in synchronous mode.
  3498. ;
  3499.  
  3500. DirRemoveDSAMPB            RECORD 0
  3501. qLink                     ds.l    1                ; offset: $0 (0)
  3502. reserved1                 ds.l    1                ; offset: $4 (4)
  3503. reserved2                 ds.l    1                ; offset: $8 (8)
  3504. ioCompletion             ds.l    1                ; offset: $C (12)
  3505. ioResult                 ds.w    1                ; offset: $10 (16)
  3506. saveA5                     ds.l    1                ; offset: $12 (18)
  3507. reqCode                     ds.w    1                ; offset: $16 (22)
  3508. reserved                 ds.l    2                ; offset: $18 (24)
  3509. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3510. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3511. callID                     ds.l    1                ; offset: $26 (38)
  3512. identity                 ds.l    1                ; offset: $2A (42)
  3513. gReserved1                 ds.l    1                ; offset: $2E (46)
  3514. gReserved2                 ds.l    1                ; offset: $32 (50)
  3515. gReserved3                 ds.l    1                ; offset: $36 (54)
  3516. clientData                 ds.l    1                ; offset: $3A (58)
  3517. dsamRecordCID             ds        CreationID        ; offset: $3E (62)        ;  <--  CreationID for the CSAM record 
  3518. sizeof                     EQU *                    ; size:   $46 (70)
  3519.                         ENDR
  3520.  
  3521. ;DirAddDSAMDirectory: This call can be used to inorm the availability of a CSAM catalog.
  3522. ;    dsamRecordCID ->  recordID for the CSAM serving this catalog
  3523. ;    directoryName ->  name of the catalog
  3524. ;    discriminator -> discriminator for the catalog
  3525. ;    directoryRecordCID -> If the call is successful, creationID for the record will
  3526. ;                            be returned.
  3527. ;
  3528.  
  3529. DirAddDSAMDirectoryPB    RECORD 0
  3530. qLink                     ds.l    1                ; offset: $0 (0)
  3531. reserved1                 ds.l    1                ; offset: $4 (4)
  3532. reserved2                 ds.l    1                ; offset: $8 (8)
  3533. ioCompletion             ds.l    1                ; offset: $C (12)
  3534. ioResult                 ds.w    1                ; offset: $10 (16)
  3535. saveA5                     ds.l    1                ; offset: $12 (18)
  3536. reqCode                     ds.w    1                ; offset: $16 (22)
  3537. reserved                 ds.l    2                ; offset: $18 (24)
  3538. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3539. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3540. callID                     ds.l    1                ; offset: $26 (38)
  3541. identity                 ds.l    1                ; offset: $2A (42)
  3542. gReserved1                 ds.l    1                ; offset: $2E (46)
  3543. gReserved2                 ds.l    1                ; offset: $32 (50)
  3544. gReserved3                 ds.l    1                ; offset: $36 (54)
  3545. clientData                 ds.l    1                ; offset: $3A (58)
  3546. dsamRecordCID             ds        CreationID        ; offset: $3E (62)        ;   --> CreationID for the CSAM record 
  3547. directoryName             ds.l    1                ; offset: $46 (70)        ;   --> catalog name 
  3548. discriminator             ds        DirDiscriminator ; offset: $4A (74)        ;   --> catalog discriminator 
  3549. features                 ds.l    1                ; offset: $52 (82)        ;   --> capabilty flags for the catalog 
  3550. directoryRecordCID         ds        CreationID        ; offset: $56 (86)        ;  <--  creationID for the catalog record 
  3551. sizeof                     EQU *                    ; size:   $5E (94)
  3552.                         ENDR
  3553. ;DirRemoveDirectory: This call can be used to inform the toolbox that
  3554. ;catalog specified by 'directoryRecordCID'
  3555. ;
  3556.  
  3557. DirRemoveDirectoryPB    RECORD 0
  3558. qLink                     ds.l    1                ; offset: $0 (0)
  3559. reserved1                 ds.l    1                ; offset: $4 (4)
  3560. reserved2                 ds.l    1                ; offset: $8 (8)
  3561. ioCompletion             ds.l    1                ; offset: $C (12)
  3562. ioResult                 ds.w    1                ; offset: $10 (16)
  3563. saveA5                     ds.l    1                ; offset: $12 (18)
  3564. reqCode                     ds.w    1                ; offset: $16 (22)
  3565. reserved                 ds.l    2                ; offset: $18 (24)
  3566. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3567. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3568. callID                     ds.l    1                ; offset: $26 (38)
  3569. identity                 ds.l    1                ; offset: $2A (42)
  3570. gReserved1                 ds.l    1                ; offset: $2E (46)
  3571. gReserved2                 ds.l    1                ; offset: $32 (50)
  3572. gReserved3                 ds.l    1                ; offset: $36 (54)
  3573. clientData                 ds.l    1                ; offset: $3A (58)
  3574. directoryRecordCID         ds        CreationID        ; offset: $3E (62)        ;   --> creationID for the catalog record 
  3575. sizeof                     EQU *                    ; size:   $46 (70)
  3576.                         ENDR
  3577. ; * DSGetExtendedDirectoriesInfo::  This call can be used to get
  3578. ; * the information of various foreign catalogs supported.
  3579. ; * Typically a DE Template  may make this call to create a
  3580. ; * Address template or a Gateway may make this call to findout
  3581. ; * catalog name space in which MSAM may would support. 
  3582. ; * Client will supply a buffer pointed by 'bufferPtr' of size 'bufferLength'. 
  3583. ; * When the call completes with 'daMoreData' error, client can examine 'totalEntries'
  3584. ; * returned and reissue the call with increaing buffer.
  3585. ; * Toolbox will findout the private information of each of the Foreign Catalogs
  3586. ; * by polling CSAM's, Gateways, and MnMServers. The Information returned
  3587. ; * for each catalog will be packed in the format: 
  3588. ; * typedef struct EachDirectoryData {
  3589. ; *  PackedRLI                        pRLI;           //  packed RLI for the catalog
  3590. ; *  OSType                            entnType;        //  Entn Type
  3591. ; *  long                            hasMailSlot;   //  If this catalog has mail slot this will be 1 otherwise zero
  3592. ; *    ProtoRString                    RealName;      //  Packed RString for Real Name (padded to even boundary) 
  3593. ; *    ProtoRString                    comment;       //  Packed RString holding any comment for Display (padded to even boundary)
  3594. ; *    long                            length;        //  data length
  3595. ; *    char                            data[length];  //  data padded to even boundary
  3596. ; * };
  3597. ; *
  3598. ; *
  3599. ; *
  3600. ; * typedef struct myData {
  3601. ; *      EachDirectoryData    data[numberOfEntries];    // data packed in the above format
  3602. ; *    };
  3603. ; *
  3604.  
  3605. DirGetExtendedDirectoriesInfoPB RECORD 0
  3606. qLink                     ds.l    1                ; offset: $0 (0)
  3607. reserved1                 ds.l    1                ; offset: $4 (4)
  3608. reserved2                 ds.l    1                ; offset: $8 (8)
  3609. ioCompletion             ds.l    1                ; offset: $C (12)
  3610. ioResult                 ds.w    1                ; offset: $10 (16)
  3611. saveA5                     ds.l    1                ; offset: $12 (18)
  3612. reqCode                     ds.w    1                ; offset: $16 (22)
  3613. reserved                 ds.l    2                ; offset: $18 (24)
  3614. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3615. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3616. callID                     ds.l    1                ; offset: $26 (38)
  3617. identity                 ds.l    1                ; offset: $2A (42)
  3618. gReserved1                 ds.l    1                ; offset: $2E (46)
  3619. gReserved2                 ds.l    1                ; offset: $32 (50)
  3620. gReserved3                 ds.l    1                ; offset: $36 (54)
  3621. clientData                 ds.l    1                ; offset: $3A (58)
  3622. buffer                     ds.l    1                ; offset: $3E (62)        ;   --> Pointer to a buufer where data will be returned 
  3623. bufferSize                 ds.l    1                ; offset: $42 (66)        ;   --> Length of the buffer, Length of actual data will be returned here 
  3624. totalEntries             ds.l    1                ; offset: $46 (70)        ;  <--  Total Number of Catalogs found 
  3625. actualEntries             ds.l    1                ; offset: $4A (74)        ;  <--  Total Number of Catalogs entries returned 
  3626. sizeof                     EQU *                    ; size:   $4E (78)
  3627.                         ENDR
  3628. ;DirGetDirectoryIconPB: With this call a client can find out about
  3629. ;the icons supported by the Catalog.
  3630. ;Both ADAP and Personal Catalog will not support this call for now.
  3631. ;A CSAM can support a call so that DE Extension can use this
  3632. ;call to find appropriate Icons.
  3633. ;
  3634. ;Returns kOCEBufferTooSmall if icon is too small, but will update iconSize.
  3635. ;
  3636.  
  3637. DirGetDirectoryIconPB    RECORD 0
  3638. qLink                     ds.l    1                ; offset: $0 (0)
  3639. reserved1                 ds.l    1                ; offset: $4 (4)
  3640. reserved2                 ds.l    1                ; offset: $8 (8)
  3641. ioCompletion             ds.l    1                ; offset: $C (12)
  3642. ioResult                 ds.w    1                ; offset: $10 (16)
  3643. saveA5                     ds.l    1                ; offset: $12 (18)
  3644. reqCode                     ds.w    1                ; offset: $16 (22)
  3645. reserved                 ds.l    2                ; offset: $18 (24)
  3646. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3647. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3648. callID                     ds.l    1                ; offset: $26 (38)
  3649. identity                 ds.l    1                ; offset: $2A (42)
  3650. gReserved1                 ds.l    1                ; offset: $2E (46)
  3651. gReserved2                 ds.l    1                ; offset: $32 (50)
  3652. gReserved3                 ds.l    1                ; offset: $36 (54)
  3653. clientData                 ds.l    1                ; offset: $3A (58)
  3654. pRLI                     ds.l    1                ; offset: $3E (62)        ;   --> packed RLI for the catalog 
  3655. iconType                 ds.l    1                ; offset: $42 (66)        ;   --> Type of Icon requested 
  3656. iconBuffer                 ds.l    1                ; offset: $46 (70)        ;   --> Buffer to hold Icon Data 
  3657. bufferSize                 ds.l    1                ; offset: $4A (74)        ;   <-> size of buffer to hold icon data 
  3658. sizeof                     EQU *                    ; size:   $4E (78)
  3659.                         ENDR
  3660. ;DirGetOCESetupRefNum: This call will return 'dsRefnum' for the OCE Setup Personal Catalog
  3661. ;and oceSetupRecordCID for the oceSetup Record.
  3662. ;Clients interested in manipulating OCE Setup Personal Catalog directly should
  3663. ;make this call to get 'dsRefNum'.
  3664. ;'dsRefNum' will be returned in the standard field in the DirParamHeader.
  3665. ;
  3666.  
  3667. DirGetOCESetupRefNumPB    RECORD 0
  3668. qLink                     ds.l    1                ; offset: $0 (0)
  3669. reserved1                 ds.l    1                ; offset: $4 (4)
  3670. reserved2                 ds.l    1                ; offset: $8 (8)
  3671. ioCompletion             ds.l    1                ; offset: $C (12)
  3672. ioResult                 ds.w    1                ; offset: $10 (16)
  3673. saveA5                     ds.l    1                ; offset: $12 (18)
  3674. reqCode                     ds.w    1                ; offset: $16 (22)
  3675. reserved                 ds.l    2                ; offset: $18 (24)
  3676. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3677. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3678. callID                     ds.l    1                ; offset: $26 (38)
  3679. identity                 ds.l    1                ; offset: $2A (42)
  3680. gReserved1                 ds.l    1                ; offset: $2E (46)
  3681. gReserved2                 ds.l    1                ; offset: $32 (50)
  3682. gReserved3                 ds.l    1                ; offset: $36 (54)
  3683. clientData                 ds.l    1                ; offset: $3A (58)
  3684. oceSetupRecordCID         ds        CreationID        ; offset: $3E (62)        ;  --> creationID for the catalog record 
  3685. sizeof                     EQU *                    ; size:   $46 (70)
  3686.                         ENDR
  3687.  
  3688. ; ****************************************************************************
  3689. ;  Catalog and Authentication control blocks and operation definitions 
  3690. AuthParamBlock            RECORD 0
  3691. qLink                     ds.l    1                ; offset: $0 (0)
  3692. reserved1                 ds.l    1                ; offset: $4 (4)
  3693. reserved2                 ds.l    1                ; offset: $8 (8)
  3694. ioCompletion             ds.l    1                ; offset: $C (12)
  3695. ioResult                 ds.w    1                ; offset: $10 (16)
  3696. saveA5                     ds.l    1                ; offset: $12 (18)
  3697. reqCode                     ds.w    1                ; offset: $16 (22)
  3698. reserved                 ds.l    2                ; offset: $18 (24)
  3699. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3700. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3701. callID                     ds.l    1                ; offset: $26 (38)
  3702. identity                 ds.l    1                ; offset: $2A (42)
  3703. gReserved1                 ds.l    1                ; offset: $2E (46)
  3704. gReserved2                 ds.l    1                ; offset: $32 (50)
  3705. gReserved3                 ds.l    1                ; offset: $36 (54)
  3706. clientData                 ds.l    1                ; offset: $3A (58)
  3707.                          ORG 0
  3708. bindIdentityPB             ds        AuthBindSpecificIdentityPB ; offset: $0 (0)
  3709.                          ORG 0
  3710. unbindIdentityPB         ds        AuthUnbindSpecificIdentityPB ; offset: $0 (0)
  3711.                          ORG 0
  3712. resolveCreationIDPB         ds        AuthResolveCreationIDPB ; offset: $0 (0)
  3713.                          ORG 0
  3714. getIdentityInfoPB         ds        AuthGetSpecificIdentityInfoPB ; offset: $0 (0)
  3715.                          ORG 0
  3716. addKeyPB                 ds        AuthAddKeyPB    ; offset: $0 (0)
  3717.                          ORG 0
  3718. changeKeyPB                 ds        AuthChangeKeyPB ; offset: $0 (0)
  3719.                          ORG 0
  3720. deleteKeyPB                 ds        AuthDeleteKeyPB ; offset: $0 (0)
  3721.                          ORG 0
  3722. passwordToKeyPB             ds        AuthPasswordToKeyPB ; offset: $0 (0)
  3723.                          ORG 0
  3724. getCredentialsPB         ds        AuthGetCredentialsPB ; offset: $0 (0)
  3725.                          ORG 0
  3726. decryptCredentialsPB     ds        AuthDecryptCredentialsPB ; offset: $0 (0)
  3727.                          ORG 0
  3728. makeChallengePB             ds        AuthMakeChallengePB ; offset: $0 (0)
  3729.                          ORG 0
  3730. makeReplyPB                 ds        AuthMakeReplyPB ; offset: $0 (0)
  3731.                          ORG 0
  3732. verifyReplyPB             ds        AuthVerifyReplyPB ; offset: $0 (0)
  3733.                          ORG 0
  3734. getUTCTimePB             ds        AuthGetUTCTimePB ; offset: $0 (0)
  3735.                          ORG 0
  3736. makeProxyPB                 ds        AuthMakeProxyPB ; offset: $0 (0)
  3737.                          ORG 0
  3738. tradeProxyForCredentialsPB  ds    AuthTradeProxyForCredentialsPB ; offset: $0 (0)
  3739.                          ORG 0
  3740. getLocalIdentityPB         ds        AuthGetLocalIdentityPB ; offset: $0 (0)
  3741.                          ORG 0
  3742. unLockLocalIdentityPB     ds        AuthUnlockLocalIdentityPB ; offset: $0 (0)
  3743.                          ORG 0
  3744. lockLocalIdentityPB         ds        AuthLockLocalIdentityPB ; offset: $0 (0)
  3745.                          ORG 0
  3746. localIdentityQInstallPB     ds        AuthAddToLocalIdentityQueuePB ; offset: $0 (0)
  3747.                          ORG 0
  3748. localIdentityQRemovePB     ds        AuthRemoveFromLocalIdentityQueuePB ; offset: $0 (0)
  3749.                          ORG 0
  3750. setupLocalIdentityPB     ds        AuthSetupLocalIdentityPB ; offset: $0 (0)
  3751.                          ORG 0
  3752. changeLocalIdentityPB     ds        AuthChangeLocalIdentityPB ; offset: $0 (0)
  3753.                          ORG 0
  3754. removeLocalIdentityPB     ds        AuthRemoveLocalIdentityPB ; offset: $0 (0)
  3755.                          ORG 0
  3756. setupDirectoryIdentityPB  ds    OCESetupAddDirectoryInfoPB ; offset: $0 (0)
  3757.                          ORG 0
  3758. changeDirectoryIdentityPB  ds    OCESetupChangeDirectoryInfoPB ; offset: $0 (0)
  3759.                          ORG 0
  3760. removeDirectoryIdentityPB  ds    OCESetupRemoveDirectoryInfoPB ; offset: $0 (0)
  3761.                          ORG 0
  3762. getDirectoryIdentityInfoPB  ds    OCESetupGetDirectoryInfoPB ; offset: $0 (0)
  3763.                          ORG 98
  3764. sizeof                     EQU *                    ; size:   $62 (98)
  3765.                         ENDR
  3766. DirParamBlock            RECORD 0
  3767. qLink                     ds.l    1                ; offset: $0 (0)
  3768. reserved1                 ds.l    1                ; offset: $4 (4)
  3769. reserved2                 ds.l    1                ; offset: $8 (8)
  3770. ioCompletion             ds.l    1                ; offset: $C (12)
  3771. ioResult                 ds.w    1                ; offset: $10 (16)
  3772. saveA5                     ds.l    1                ; offset: $12 (18)
  3773. reqCode                     ds.w    1                ; offset: $16 (22)
  3774. reserved                 ds.l    2                ; offset: $18 (24)
  3775. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3776. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3777. callID                     ds.l    1                ; offset: $26 (38)
  3778. identity                 ds.l    1                ; offset: $2A (42)
  3779. gReserved1                 ds.l    1                ; offset: $2E (46)
  3780. gReserved2                 ds.l    1                ; offset: $32 (50)
  3781. gReserved3                 ds.l    1                ; offset: $36 (54)
  3782. clientData                 ds.l    1                ; offset: $3A (58)
  3783.                          ORG 0
  3784. addRecordPB                 ds        DirAddRecordPB ; offset: $0 (0)
  3785.                          ORG 0
  3786. deleteRecordPB             ds        DirDeleteRecordPB ; offset: $0 (0)
  3787.                          ORG 0
  3788. enumerateGetPB             ds        DirEnumerateGetPB ; offset: $0 (0)
  3789.                          ORG 0
  3790. enumerateParsePB         ds        DirEnumerateParsePB ; offset: $0 (0)
  3791.                          ORG 0
  3792. findRecordGetPB             ds        DirFindRecordGetPB ; offset: $0 (0)
  3793.                          ORG 0
  3794. findRecordParsePB         ds        DirFindRecordParsePB ; offset: $0 (0)
  3795.                          ORG 0
  3796. lookupGetPB                 ds        DirLookupGetPB ; offset: $0 (0)
  3797.                          ORG 0
  3798. lookupParsePB             ds        DirLookupParsePB ; offset: $0 (0)
  3799.                          ORG 0
  3800. addAttributeValuePB         ds        DirAddAttributeValuePB ; offset: $0 (0)
  3801.                          ORG 0
  3802. deleteAttributeTypePB     ds        DirDeleteAttributeTypePB ; offset: $0 (0)
  3803.                          ORG 0
  3804. deleteAttributeValuePB     ds        DirDeleteAttributeValuePB ; offset: $0 (0)
  3805.                          ORG 0
  3806. changeAttributeValuePB     ds        DirChangeAttributeValuePB ; offset: $0 (0)
  3807.                          ORG 0
  3808. verifyAttributeValuePB     ds        DirVerifyAttributeValuePB ; offset: $0 (0)
  3809.                          ORG 0
  3810. findValuePB                 ds        DirFindValuePB ; offset: $0 (0)
  3811.                          ORG 0
  3812. enumeratePseudonymGetPB     ds        DirEnumeratePseudonymGetPB ; offset: $0 (0)
  3813.                          ORG 0
  3814. enumeratePseudonymParsePB  ds    DirEnumeratePseudonymParsePB ; offset: $0 (0)
  3815.                          ORG 0
  3816. addPseudonymPB             ds        DirAddPseudonymPB ; offset: $0 (0)
  3817.                          ORG 0
  3818. deletePseudonymPB         ds        DirDeletePseudonymPB ; offset: $0 (0)
  3819.                          ORG 0
  3820. addAliasPB                 ds        DirAddAliasPB    ; offset: $0 (0)
  3821.                          ORG 0
  3822. enumerateAttributeTypesGetPB  ds DirEnumerateAttributeTypesGetPB ; offset: $0 (0)
  3823.                          ORG 0
  3824. enumerateAttributeTypesParsePB  ds DirEnumerateAttributeTypesParsePB ; offset: $0 (0)
  3825.                          ORG 0
  3826. getNameAndTypePB         ds        DirGetNameAndTypePB ; offset: $0 (0)
  3827.                          ORG 0
  3828. setNameAndTypePB         ds        DirSetNameAndTypePB ; offset: $0 (0)
  3829.                          ORG 0
  3830. getRecordMetaInfoPB         ds        DirGetRecordMetaInfoPB ; offset: $0 (0)
  3831.                          ORG 0
  3832. getDNodeMetaInfoPB         ds        DirGetDNodeMetaInfoPB ; offset: $0 (0)
  3833.                          ORG 0
  3834. getDirectoryInfoPB         ds        DirGetDirectoryInfoPB ; offset: $0 (0)
  3835.                          ORG 0
  3836. getDNodeAccessControlGetPB  ds    DirGetDNodeAccessControlGetPB ; offset: $0 (0)
  3837.                          ORG 0
  3838. getDNodeAccessControlParsePB  ds DirGetDNodeAccessControlParsePB ; offset: $0 (0)
  3839.                          ORG 0
  3840. getRecordAccessControlGetPB  ds    DirGetRecordAccessControlGetPB ; offset: $0 (0)
  3841.                          ORG 0
  3842. getRecordAccessControlParsePB  ds DirGetRecordAccessControlParsePB ; offset: $0 (0)
  3843.                          ORG 0
  3844. getAttributeAccessControlGetPB  ds DirGetAttributeAccessControlGetPB ; offset: $0 (0)
  3845.                          ORG 0
  3846. getAttributeAccessControlParsePB  ds DirGetAttributeAccessControlParsePB ; offset: $0 (0)
  3847.                          ORG 0
  3848. enumerateDirectoriesGetPB  ds    DirEnumerateDirectoriesGetPB ; offset: $0 (0)
  3849.                          ORG 0
  3850. enumerateDirectoriesParsePB  ds    DirEnumerateDirectoriesParsePB ; offset: $0 (0)
  3851.                          ORG 0
  3852. addADAPDirectoryPB         ds        DirAddADAPDirectoryPB ; offset: $0 (0)
  3853.                          ORG 0
  3854. removeDirectoryPB         ds        DirRemoveDirectoryPB ; offset: $0 (0)
  3855.                          ORG 0
  3856. netSearchADAPDirectoriesGetPB  ds DirNetSearchADAPDirectoriesGetPB ; offset: $0 (0)
  3857.                          ORG 0
  3858. netSearchADAPDirectoriesParsePB  ds DirNetSearchADAPDirectoriesParsePB ; offset: $0 (0)
  3859.                          ORG 0
  3860. findADAPDirectoryByNetSearchPB  ds DirFindADAPDirectoryByNetSearchPB ; offset: $0 (0)
  3861.                          ORG 0
  3862. mapDNodeNumberToPathNamePB  ds    DirMapDNodeNumberToPathNamePB ; offset: $0 (0)
  3863.                          ORG 0
  3864. mapPathNameToDNodeNumberPB  ds    DirMapPathNameToDNodeNumberPB ; offset: $0 (0)
  3865.                          ORG 0
  3866. getLocalNetworkSpecPB     ds        DirGetLocalNetworkSpecPB ; offset: $0 (0)
  3867.                          ORG 0
  3868. getDNodeInfoPB             ds        DirGetDNodeInfoPB ; offset: $0 (0)
  3869.                          ORG 0
  3870. createPersonalDirectoryPB  ds    DirCreatePersonalDirectoryPB ; offset: $0 (0)
  3871.                          ORG 0
  3872. openPersonalDirectoryPB     ds        DirOpenPersonalDirectoryPB ; offset: $0 (0)
  3873.                          ORG 0
  3874. closePersonalDirectoryPB  ds    DirClosePersonalDirectoryPB ; offset: $0 (0)
  3875.                          ORG 0
  3876. makePersonalDirectoryRLIPB  ds    DirMakePersonalDirectoryRLIPB ; offset: $0 (0)
  3877.                          ORG 0
  3878. addDSAMPB                 ds        DirAddDSAMPB    ; offset: $0 (0)
  3879.                          ORG 0
  3880. instantiateDSAMPB         ds        DirInstantiateDSAMPB ; offset: $0 (0)
  3881.                          ORG 0
  3882. removeDSAMPB             ds        DirRemoveDSAMPB ; offset: $0 (0)
  3883.                          ORG 0
  3884. addDSAMDirectoryPB         ds        DirAddDSAMDirectoryPB ; offset: $0 (0)
  3885.                          ORG 0
  3886. getExtendedDirectoriesInfoPB  ds DirGetExtendedDirectoriesInfoPB ; offset: $0 (0)
  3887.                          ORG 0
  3888. getDirectoryIconPB         ds        DirGetDirectoryIconPB ; offset: $0 (0)
  3889.                          ORG 0
  3890. dirGetOCESetupRefNumPB     ds        DirGetOCESetupRefNumPB ; offset: $0 (0)
  3891.                          ORG 0
  3892. abortPB                     ds        DirAbortPB        ; offset: $0 (0)
  3893.                          ORG 174
  3894. sizeof                     EQU *                    ; size:   $AE (174)
  3895.                         ENDR
  3896. ;
  3897. ; pascal OSErr AuthBindSpecificIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  3898. ;
  3899.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  3900.         Macro
  3901.         _AuthBindSpecificIdentity
  3902.             move.w              #$0200,-(sp)
  3903.             dc.w                $AA5E
  3904.         EndM
  3905.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  3906.         IMPORT_CFM_FUNCTION AuthBindSpecificIdentity
  3907.     ENDIF
  3908.  
  3909. ;
  3910. ; pascal OSErr AuthUnbindSpecificIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  3911. ;
  3912.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  3913.         Macro
  3914.         _AuthUnbindSpecificIdentity
  3915.             move.w              #$0201,-(sp)
  3916.             dc.w                $AA5E
  3917.         EndM
  3918.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  3919.         IMPORT_CFM_FUNCTION AuthUnbindSpecificIdentity
  3920.     ENDIF
  3921.  
  3922. ;
  3923. ; pascal OSErr AuthResolveCreationID(AuthParamBlockPtr paramBlock, Boolean async)
  3924. ;
  3925.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  3926.         Macro
  3927.         _AuthResolveCreationID
  3928.             move.w              #$0202,-(sp)
  3929.             dc.w                $AA5E
  3930.         EndM
  3931.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  3932.         IMPORT_CFM_FUNCTION AuthResolveCreationID
  3933.     ENDIF
  3934.  
  3935. ;
  3936. ; pascal OSErr AuthGetSpecificIdentityInfo(AuthParamBlockPtr paramBlock, Boolean async)
  3937. ;
  3938.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  3939.         Macro
  3940.         _AuthGetSpecificIdentityInfo
  3941.             move.w              #$0203,-(sp)
  3942.             dc.w                $AA5E
  3943.         EndM
  3944.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  3945.         IMPORT_CFM_FUNCTION AuthGetSpecificIdentityInfo
  3946.     ENDIF
  3947.  
  3948. ;
  3949. ; pascal OSErr AuthAddKey(AuthParamBlockPtr paramBlock, Boolean async)
  3950. ;
  3951.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  3952.         Macro
  3953.         _AuthAddKey
  3954.             move.w              #$0207,-(sp)
  3955.             dc.w                $AA5E
  3956.         EndM
  3957.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  3958.         IMPORT_CFM_FUNCTION AuthAddKey
  3959.     ENDIF
  3960.  
  3961. ;
  3962. ; pascal OSErr AuthChangeKey(AuthParamBlockPtr paramBlock, Boolean async)
  3963. ;
  3964.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  3965.         Macro
  3966.         _AuthChangeKey
  3967.             move.w              #$0208,-(sp)
  3968.             dc.w                $AA5E
  3969.         EndM
  3970.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  3971.         IMPORT_CFM_FUNCTION AuthChangeKey
  3972.     ENDIF
  3973.  
  3974. ;
  3975. ; pascal OSErr AuthDeleteKey(AuthParamBlockPtr paramBlock, Boolean async)
  3976. ;
  3977.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  3978.         Macro
  3979.         _AuthDeleteKey
  3980.             move.w              #$0209,-(sp)
  3981.             dc.w                $AA5E
  3982.         EndM
  3983.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  3984.         IMPORT_CFM_FUNCTION AuthDeleteKey
  3985.     ENDIF
  3986.  
  3987. ;
  3988. ; pascal OSErr AuthPasswordToKey(AuthParamBlockPtr paramBlock, Boolean async)
  3989. ;
  3990.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  3991.         Macro
  3992.         _AuthPasswordToKey
  3993.             move.w              #$020A,-(sp)
  3994.             dc.w                $AA5E
  3995.         EndM
  3996.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  3997.         IMPORT_CFM_FUNCTION AuthPasswordToKey
  3998.     ENDIF
  3999.  
  4000. ;
  4001. ; pascal OSErr AuthGetCredentials(AuthParamBlockPtr paramBlock, Boolean async)
  4002. ;
  4003.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4004.         Macro
  4005.         _AuthGetCredentials
  4006.             move.w              #$020B,-(sp)
  4007.             dc.w                $AA5E
  4008.         EndM
  4009.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4010.         IMPORT_CFM_FUNCTION AuthGetCredentials
  4011.     ENDIF
  4012.  
  4013. ;
  4014. ; pascal OSErr AuthDecryptCredentials(AuthParamBlockPtr paramBlock, Boolean async)
  4015. ;
  4016.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4017.         Macro
  4018.         _AuthDecryptCredentials
  4019.             move.w              #$020C,-(sp)
  4020.             dc.w                $AA5E
  4021.         EndM
  4022.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4023.         IMPORT_CFM_FUNCTION AuthDecryptCredentials
  4024.     ENDIF
  4025.  
  4026. ;
  4027. ; pascal OSErr AuthMakeChallenge(AuthParamBlockPtr paramBlock, Boolean async)
  4028. ;
  4029.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4030.         Macro
  4031.         _AuthMakeChallenge
  4032.             move.w              #$020F,-(sp)
  4033.             dc.w                $AA5E
  4034.         EndM
  4035.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4036.         IMPORT_CFM_FUNCTION AuthMakeChallenge
  4037.     ENDIF
  4038.  
  4039. ;
  4040. ; pascal OSErr AuthMakeReply(AuthParamBlockPtr paramBlock, Boolean async)
  4041. ;
  4042.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4043.         Macro
  4044.         _AuthMakeReply
  4045.             move.w              #$0210,-(sp)
  4046.             dc.w                $AA5E
  4047.         EndM
  4048.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4049.         IMPORT_CFM_FUNCTION AuthMakeReply
  4050.     ENDIF
  4051.  
  4052. ;
  4053. ; pascal OSErr AuthVerifyReply(AuthParamBlockPtr paramBlock, Boolean async)
  4054. ;
  4055.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4056.         Macro
  4057.         _AuthVerifyReply
  4058.             move.w              #$0211,-(sp)
  4059.             dc.w                $AA5E
  4060.         EndM
  4061.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4062.         IMPORT_CFM_FUNCTION AuthVerifyReply
  4063.     ENDIF
  4064.  
  4065. ;
  4066. ; pascal OSErr AuthGetUTCTime(AuthParamBlockPtr paramBlock, Boolean async)
  4067. ;
  4068.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4069.         Macro
  4070.         _AuthGetUTCTime
  4071.             move.w              #$021A,-(sp)
  4072.             dc.w                $AA5E
  4073.         EndM
  4074.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4075.         IMPORT_CFM_FUNCTION AuthGetUTCTime
  4076.     ENDIF
  4077.  
  4078. ;
  4079. ; pascal OSErr AuthMakeProxy(AuthParamBlockPtr paramBlock, Boolean async)
  4080. ;
  4081.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4082.         Macro
  4083.         _AuthMakeProxy
  4084.             move.w              #$0212,-(sp)
  4085.             dc.w                $AA5E
  4086.         EndM
  4087.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4088.         IMPORT_CFM_FUNCTION AuthMakeProxy
  4089.     ENDIF
  4090.  
  4091. ;
  4092. ; pascal OSErr AuthTradeProxyForCredentials(AuthParamBlockPtr paramBlock, Boolean async)
  4093. ;
  4094.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4095.         Macro
  4096.         _AuthTradeProxyForCredentials
  4097.             move.w              #$0213,-(sp)
  4098.             dc.w                $AA5E
  4099.         EndM
  4100.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4101.         IMPORT_CFM_FUNCTION AuthTradeProxyForCredentials
  4102.     ENDIF
  4103.  
  4104. ;  Local Identity API 
  4105. ;
  4106. ; pascal OSErr AuthGetLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4107. ;
  4108.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4109.         Macro
  4110.         _AuthGetLocalIdentity
  4111.             move.w              #$0204,-(sp)
  4112.             dc.w                $AA5E
  4113.         EndM
  4114.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4115.         IMPORT_CFM_FUNCTION AuthGetLocalIdentity
  4116.     ENDIF
  4117.  
  4118. ;
  4119. ; pascal OSErr AuthUnlockLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4120. ;
  4121.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4122.         Macro
  4123.         _AuthUnlockLocalIdentity
  4124.             move.w              #$0214,-(sp)
  4125.             dc.w                $AA5E
  4126.         EndM
  4127.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4128.         IMPORT_CFM_FUNCTION AuthUnlockLocalIdentity
  4129.     ENDIF
  4130.  
  4131. ;
  4132. ; pascal OSErr AuthLockLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4133. ;
  4134.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4135.         Macro
  4136.         _AuthLockLocalIdentity
  4137.             move.w              #$0215,-(sp)
  4138.             dc.w                $AA5E
  4139.         EndM
  4140.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4141.         IMPORT_CFM_FUNCTION AuthLockLocalIdentity
  4142.     ENDIF
  4143.  
  4144. ;
  4145. ; pascal OSErr AuthAddToLocalIdentityQueue(AuthParamBlockPtr paramBlock, Boolean async)
  4146. ;
  4147.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4148.         Macro
  4149.         _AuthAddToLocalIdentityQueue
  4150.             move.w              #$0205,-(sp)
  4151.             dc.w                $AA5E
  4152.         EndM
  4153.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4154.         IMPORT_CFM_FUNCTION AuthAddToLocalIdentityQueue
  4155.     ENDIF
  4156.  
  4157. ;
  4158. ; pascal OSErr AuthRemoveFromLocalIdentityQueue(AuthParamBlockPtr paramBlock, Boolean async)
  4159. ;
  4160.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4161.         Macro
  4162.         _AuthRemoveFromLocalIdentityQueue
  4163.             move.w              #$0206,-(sp)
  4164.             dc.w                $AA5E
  4165.         EndM
  4166.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4167.         IMPORT_CFM_FUNCTION AuthRemoveFromLocalIdentityQueue
  4168.     ENDIF
  4169.  
  4170. ;
  4171. ; pascal OSErr AuthSetupLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4172. ;
  4173.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4174.         Macro
  4175.         _AuthSetupLocalIdentity
  4176.             move.w              #$0216,-(sp)
  4177.             dc.w                $AA5E
  4178.         EndM
  4179.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4180.         IMPORT_CFM_FUNCTION AuthSetupLocalIdentity
  4181.     ENDIF
  4182.  
  4183. ;
  4184. ; pascal OSErr AuthChangeLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4185. ;
  4186.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4187.         Macro
  4188.         _AuthChangeLocalIdentity
  4189.             move.w              #$0217,-(sp)
  4190.             dc.w                $AA5E
  4191.         EndM
  4192.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4193.         IMPORT_CFM_FUNCTION AuthChangeLocalIdentity
  4194.     ENDIF
  4195.  
  4196. ;
  4197. ; pascal OSErr AuthRemoveLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4198. ;
  4199.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4200.         Macro
  4201.         _AuthRemoveLocalIdentity
  4202.             move.w              #$0218,-(sp)
  4203.             dc.w                $AA5E
  4204.         EndM
  4205.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4206.         IMPORT_CFM_FUNCTION AuthRemoveLocalIdentity
  4207.     ENDIF
  4208.  
  4209. ;
  4210. ; pascal OSErr DirAddRecord(DirParamBlockPtr paramBlock, Boolean async)
  4211. ;
  4212.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4213.         Macro
  4214.         _DirAddRecord
  4215.             move.w              #$0109,-(sp)
  4216.             dc.w                $AA5E
  4217.         EndM
  4218.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4219.         IMPORT_CFM_FUNCTION DirAddRecord
  4220.     ENDIF
  4221.  
  4222. ;
  4223. ; pascal OSErr DirDeleteRecord(DirParamBlockPtr paramBlock, Boolean async)
  4224. ;
  4225.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4226.         Macro
  4227.         _DirDeleteRecord
  4228.             move.w              #$010A,-(sp)
  4229.             dc.w                $AA5E
  4230.         EndM
  4231.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4232.         IMPORT_CFM_FUNCTION DirDeleteRecord
  4233.     ENDIF
  4234.  
  4235. ;
  4236. ; pascal OSErr DirEnumerateGet(DirParamBlockPtr paramBlock, Boolean async)
  4237. ;
  4238.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4239.         Macro
  4240.         _DirEnumerateGet
  4241.             move.w              #$0111,-(sp)
  4242.             dc.w                $AA5E
  4243.         EndM
  4244.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4245.         IMPORT_CFM_FUNCTION DirEnumerateGet
  4246.     ENDIF
  4247.  
  4248. ;
  4249. ; pascal OSErr DirEnumerateParse(DirParamBlockPtr paramBlock, Boolean async)
  4250. ;
  4251.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4252.         Macro
  4253.         _DirEnumerateParse
  4254.             move.w              #$0101,-(sp)
  4255.             dc.w                $AA5E
  4256.         EndM
  4257.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4258.         IMPORT_CFM_FUNCTION DirEnumerateParse
  4259.     ENDIF
  4260.  
  4261. ;
  4262. ; pascal OSErr DirFindRecordGet(DirParamBlockPtr paramBlock, Boolean async)
  4263. ;
  4264.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4265.         Macro
  4266.         _DirFindRecordGet
  4267.             move.w              #$0140,-(sp)
  4268.             dc.w                $AA5E
  4269.         EndM
  4270.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4271.         IMPORT_CFM_FUNCTION DirFindRecordGet
  4272.     ENDIF
  4273.  
  4274. ;
  4275. ; pascal OSErr DirFindRecordParse(DirParamBlockPtr paramBlock, Boolean async)
  4276. ;
  4277.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4278.         Macro
  4279.         _DirFindRecordParse
  4280.             move.w              #$0141,-(sp)
  4281.             dc.w                $AA5E
  4282.         EndM
  4283.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4284.         IMPORT_CFM_FUNCTION DirFindRecordParse
  4285.     ENDIF
  4286.  
  4287. ;
  4288. ; pascal OSErr DirLookupGet(DirParamBlockPtr paramBlock, Boolean async)
  4289. ;
  4290.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4291.         Macro
  4292.         _DirLookupGet
  4293.             move.w              #$0117,-(sp)
  4294.             dc.w                $AA5E
  4295.         EndM
  4296.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4297.         IMPORT_CFM_FUNCTION DirLookupGet
  4298.     ENDIF
  4299.  
  4300. ;
  4301. ; pascal OSErr DirLookupParse(DirParamBlockPtr paramBlock, Boolean async)
  4302. ;
  4303.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4304.         Macro
  4305.         _DirLookupParse
  4306.             move.w              #$0102,-(sp)
  4307.             dc.w                $AA5E
  4308.         EndM
  4309.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4310.         IMPORT_CFM_FUNCTION DirLookupParse
  4311.     ENDIF
  4312.  
  4313. ;
  4314. ; pascal OSErr DirAddAttributeValue(DirParamBlockPtr paramBlock, Boolean async)
  4315. ;
  4316.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4317.         Macro
  4318.         _DirAddAttributeValue
  4319.             move.w              #$010B,-(sp)
  4320.             dc.w                $AA5E
  4321.         EndM
  4322.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4323.         IMPORT_CFM_FUNCTION DirAddAttributeValue
  4324.     ENDIF
  4325.  
  4326. ;
  4327. ; pascal OSErr DirDeleteAttributeValue(DirParamBlockPtr paramBlock, Boolean async)
  4328. ;
  4329.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4330.         Macro
  4331.         _DirDeleteAttributeValue
  4332.             move.w              #$010C,-(sp)
  4333.             dc.w                $AA5E
  4334.         EndM
  4335.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4336.         IMPORT_CFM_FUNCTION DirDeleteAttributeValue
  4337.     ENDIF
  4338.  
  4339. ;
  4340. ; pascal OSErr DirDeleteAttributeType(DirParamBlockPtr paramBlock, Boolean async)
  4341. ;
  4342.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4343.         Macro
  4344.         _DirDeleteAttributeType
  4345.             move.w              #$0130,-(sp)
  4346.             dc.w                $AA5E
  4347.         EndM
  4348.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4349.         IMPORT_CFM_FUNCTION DirDeleteAttributeType
  4350.     ENDIF
  4351.  
  4352. ;
  4353. ; pascal OSErr DirChangeAttributeValue(DirParamBlockPtr paramBlock, Boolean async)
  4354. ;
  4355.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4356.         Macro
  4357.         _DirChangeAttributeValue
  4358.             move.w              #$010D,-(sp)
  4359.             dc.w                $AA5E
  4360.         EndM
  4361.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4362.         IMPORT_CFM_FUNCTION DirChangeAttributeValue
  4363.     ENDIF
  4364.  
  4365. ;
  4366. ; pascal OSErr DirVerifyAttributeValue(DirParamBlockPtr paramBlock, Boolean async)
  4367. ;
  4368.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4369.         Macro
  4370.         _DirVerifyAttributeValue
  4371.             move.w              #$010E,-(sp)
  4372.             dc.w                $AA5E
  4373.         EndM
  4374.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4375.         IMPORT_CFM_FUNCTION DirVerifyAttributeValue
  4376.     ENDIF
  4377.  
  4378. ;
  4379. ; pascal OSErr DirFindValue(DirParamBlockPtr paramBlock, Boolean async)
  4380. ;
  4381.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4382.         Macro
  4383.         _DirFindValue
  4384.             move.w              #$0126,-(sp)
  4385.             dc.w                $AA5E
  4386.         EndM
  4387.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4388.         IMPORT_CFM_FUNCTION DirFindValue
  4389.     ENDIF
  4390.  
  4391. ;
  4392. ; pascal OSErr DirEnumerateAttributeTypesGet(DirParamBlockPtr paramBlock, Boolean async)
  4393. ;
  4394.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4395.         Macro
  4396.         _DirEnumerateAttributeTypesGet
  4397.             move.w              #$0112,-(sp)
  4398.             dc.w                $AA5E
  4399.         EndM
  4400.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4401.         IMPORT_CFM_FUNCTION DirEnumerateAttributeTypesGet
  4402.     ENDIF
  4403.  
  4404. ;
  4405. ; pascal OSErr DirEnumerateAttributeTypesParse(DirParamBlockPtr paramBlock, Boolean async)
  4406. ;
  4407.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4408.         Macro
  4409.         _DirEnumerateAttributeTypesParse
  4410.             move.w              #$0103,-(sp)
  4411.             dc.w                $AA5E
  4412.         EndM
  4413.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4414.         IMPORT_CFM_FUNCTION DirEnumerateAttributeTypesParse
  4415.     ENDIF
  4416.  
  4417. ;
  4418. ; pascal OSErr DirAddPseudonym(DirParamBlockPtr paramBlock, Boolean async)
  4419. ;
  4420.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4421.         Macro
  4422.         _DirAddPseudonym
  4423.             move.w              #$010F,-(sp)
  4424.             dc.w                $AA5E
  4425.         EndM
  4426.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4427.         IMPORT_CFM_FUNCTION DirAddPseudonym
  4428.     ENDIF
  4429.  
  4430. ;
  4431. ; pascal OSErr DirDeletePseudonym(DirParamBlockPtr paramBlock, Boolean async)
  4432. ;
  4433.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4434.         Macro
  4435.         _DirDeletePseudonym
  4436.             move.w              #$0110,-(sp)
  4437.             dc.w                $AA5E
  4438.         EndM
  4439.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4440.         IMPORT_CFM_FUNCTION DirDeletePseudonym
  4441.     ENDIF
  4442.  
  4443. ;
  4444. ; pascal OSErr DirAddAlias(DirParamBlockPtr paramBlock, Boolean async)
  4445. ;
  4446.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4447.         Macro
  4448.         _DirAddAlias
  4449.             move.w              #$011C,-(sp)
  4450.             dc.w                $AA5E
  4451.         EndM
  4452.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4453.         IMPORT_CFM_FUNCTION DirAddAlias
  4454.     ENDIF
  4455.  
  4456. ;
  4457. ; pascal OSErr DirEnumeratePseudonymGet(DirParamBlockPtr paramBlock, Boolean async)
  4458. ;
  4459.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4460.         Macro
  4461.         _DirEnumeratePseudonymGet
  4462.             move.w              #$0113,-(sp)
  4463.             dc.w                $AA5E
  4464.         EndM
  4465.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4466.         IMPORT_CFM_FUNCTION DirEnumeratePseudonymGet
  4467.     ENDIF
  4468.  
  4469. ;
  4470. ; pascal OSErr DirEnumeratePseudonymParse(DirParamBlockPtr paramBlock, Boolean async)
  4471. ;
  4472.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4473.         Macro
  4474.         _DirEnumeratePseudonymParse
  4475.             move.w              #$0104,-(sp)
  4476.             dc.w                $AA5E
  4477.         EndM
  4478.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4479.         IMPORT_CFM_FUNCTION DirEnumeratePseudonymParse
  4480.     ENDIF
  4481.  
  4482. ;
  4483. ; pascal OSErr DirGetNameAndType(DirParamBlockPtr paramBlock, Boolean async)
  4484. ;
  4485.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4486.         Macro
  4487.         _DirGetNameAndType
  4488.             move.w              #$0114,-(sp)
  4489.             dc.w                $AA5E
  4490.         EndM
  4491.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4492.         IMPORT_CFM_FUNCTION DirGetNameAndType
  4493.     ENDIF
  4494.  
  4495. ;
  4496. ; pascal OSErr DirSetNameAndType(DirParamBlockPtr paramBlock, Boolean async)
  4497. ;
  4498.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4499.         Macro
  4500.         _DirSetNameAndType
  4501.             move.w              #$0115,-(sp)
  4502.             dc.w                $AA5E
  4503.         EndM
  4504.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4505.         IMPORT_CFM_FUNCTION DirSetNameAndType
  4506.     ENDIF
  4507.  
  4508. ;
  4509. ; pascal OSErr DirGetRecordMetaInfo(DirParamBlockPtr paramBlock, Boolean async)
  4510. ;
  4511.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4512.         Macro
  4513.         _DirGetRecordMetaInfo
  4514.             move.w              #$0116,-(sp)
  4515.             dc.w                $AA5E
  4516.         EndM
  4517.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4518.         IMPORT_CFM_FUNCTION DirGetRecordMetaInfo
  4519.     ENDIF
  4520.  
  4521. ;
  4522. ; pascal OSErr DirGetDNodeMetaInfo(DirParamBlockPtr paramBlock, Boolean async)
  4523. ;
  4524.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4525.         Macro
  4526.         _DirGetDNodeMetaInfo
  4527.             move.w              #$0118,-(sp)
  4528.             dc.w                $AA5E
  4529.         EndM
  4530.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4531.         IMPORT_CFM_FUNCTION DirGetDNodeMetaInfo
  4532.     ENDIF
  4533.  
  4534. ;
  4535. ; pascal OSErr DirGetDirectoryInfo(DirParamBlockPtr paramBlock, Boolean async)
  4536. ;
  4537.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4538.         Macro
  4539.         _DirGetDirectoryInfo
  4540.             move.w              #$0119,-(sp)
  4541.             dc.w                $AA5E
  4542.         EndM
  4543.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4544.         IMPORT_CFM_FUNCTION DirGetDirectoryInfo
  4545.     ENDIF
  4546.  
  4547. ;
  4548. ; pascal OSErr DirGetDNodeAccessControlGet(DirParamBlockPtr paramBlock, Boolean async)
  4549. ;
  4550.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4551.         Macro
  4552.         _DirGetDNodeAccessControlGet
  4553.             move.w              #$012A,-(sp)
  4554.             dc.w                $AA5E
  4555.         EndM
  4556.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4557.         IMPORT_CFM_FUNCTION DirGetDNodeAccessControlGet
  4558.     ENDIF
  4559.  
  4560. ;
  4561. ; pascal OSErr DirGetDNodeAccessControlParse(DirParamBlockPtr paramBlock, Boolean async)
  4562. ;
  4563.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4564.         Macro
  4565.         _DirGetDNodeAccessControlParse
  4566.             move.w              #$012F,-(sp)
  4567.             dc.w                $AA5E
  4568.         EndM
  4569.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4570.         IMPORT_CFM_FUNCTION DirGetDNodeAccessControlParse
  4571.     ENDIF
  4572.  
  4573. ;
  4574. ; pascal OSErr DirGetRecordAccessControlGet(DirParamBlockPtr paramBlock, Boolean async)
  4575. ;
  4576.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4577.         Macro
  4578.         _DirGetRecordAccessControlGet
  4579.             move.w              #$012C,-(sp)
  4580.             dc.w                $AA5E
  4581.         EndM
  4582.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4583.         IMPORT_CFM_FUNCTION DirGetRecordAccessControlGet
  4584.     ENDIF
  4585.  
  4586. ;
  4587. ; pascal OSErr DirGetRecordAccessControlParse(DirParamBlockPtr paramBlock, Boolean async)
  4588. ;
  4589.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4590.         Macro
  4591.         _DirGetRecordAccessControlParse
  4592.             move.w              #$0134,-(sp)
  4593.             dc.w                $AA5E
  4594.         EndM
  4595.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4596.         IMPORT_CFM_FUNCTION DirGetRecordAccessControlParse
  4597.     ENDIF
  4598.  
  4599. ;
  4600. ; pascal OSErr DirGetAttributeAccessControlGet(DirParamBlockPtr paramBlock, Boolean async)
  4601. ;
  4602.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4603.         Macro
  4604.         _DirGetAttributeAccessControlGet
  4605.             move.w              #$012E,-(sp)
  4606.             dc.w                $AA5E
  4607.         EndM
  4608.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4609.         IMPORT_CFM_FUNCTION DirGetAttributeAccessControlGet
  4610.     ENDIF
  4611.  
  4612. ;
  4613. ; pascal OSErr DirGetAttributeAccessControlParse(DirParamBlockPtr paramBlock, Boolean async)
  4614. ;
  4615.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4616.         Macro
  4617.         _DirGetAttributeAccessControlParse
  4618.             move.w              #$0138,-(sp)
  4619.             dc.w                $AA5E
  4620.         EndM
  4621.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4622.         IMPORT_CFM_FUNCTION DirGetAttributeAccessControlParse
  4623.     ENDIF
  4624.  
  4625. ;
  4626. ; pascal OSErr DirEnumerateDirectoriesGet(DirParamBlockPtr paramBlock, Boolean async)
  4627. ;
  4628.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4629.         Macro
  4630.         _DirEnumerateDirectoriesGet
  4631.             move.w              #$011A,-(sp)
  4632.             dc.w                $AA5E
  4633.         EndM
  4634.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4635.         IMPORT_CFM_FUNCTION DirEnumerateDirectoriesGet
  4636.     ENDIF
  4637.  
  4638. ;
  4639. ; pascal OSErr DirEnumerateDirectoriesParse(DirParamBlockPtr paramBlock, Boolean async)
  4640. ;
  4641.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4642.         Macro
  4643.         _DirEnumerateDirectoriesParse
  4644.             move.w              #$0106,-(sp)
  4645.             dc.w                $AA5E
  4646.         EndM
  4647.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4648.         IMPORT_CFM_FUNCTION DirEnumerateDirectoriesParse
  4649.     ENDIF
  4650.  
  4651. ;
  4652. ; pascal OSErr DirMapPathNameToDNodeNumber(DirParamBlockPtr paramBlock, Boolean async)
  4653. ;
  4654.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4655.         Macro
  4656.         _DirMapPathNameToDNodeNumber
  4657.             move.w              #$0122,-(sp)
  4658.             dc.w                $AA5E
  4659.         EndM
  4660.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4661.         IMPORT_CFM_FUNCTION DirMapPathNameToDNodeNumber
  4662.     ENDIF
  4663.  
  4664. ;
  4665. ; pascal OSErr DirMapDNodeNumberToPathName(DirParamBlockPtr paramBlock, Boolean async)
  4666. ;
  4667.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4668.         Macro
  4669.         _DirMapDNodeNumberToPathName
  4670.             move.w              #$0123,-(sp)
  4671.             dc.w                $AA5E
  4672.         EndM
  4673.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4674.         IMPORT_CFM_FUNCTION DirMapDNodeNumberToPathName
  4675.     ENDIF
  4676.  
  4677.  
  4678. ;
  4679. ; pascal OSErr DirGetLocalNetworkSpec(DirParamBlockPtr paramBlock, Boolean async)
  4680. ;
  4681.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4682.         Macro
  4683.         _DirGetLocalNetworkSpec
  4684.             move.w              #$0124,-(sp)
  4685.             dc.w                $AA5E
  4686.         EndM
  4687.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4688.         IMPORT_CFM_FUNCTION DirGetLocalNetworkSpec
  4689.     ENDIF
  4690.  
  4691. ;
  4692. ; pascal OSErr DirGetDNodeInfo(DirParamBlockPtr paramBlock, Boolean async)
  4693. ;
  4694.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4695.         Macro
  4696.         _DirGetDNodeInfo
  4697.             move.w              #$0125,-(sp)
  4698.             dc.w                $AA5E
  4699.         EndM
  4700.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4701.         IMPORT_CFM_FUNCTION DirGetDNodeInfo
  4702.     ENDIF
  4703.  
  4704.  
  4705. ;   Trap Dispatchers for Personal Catalog and CSAM Extensions 
  4706. ;
  4707. ; pascal OSErr DirCreatePersonalDirectory(DirParamBlockPtr paramBlock)
  4708. ;
  4709.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4710.         Macro
  4711.         _DirCreatePersonalDirectory
  4712.             moveq               #0,D0
  4713.             move.b              D0,-(sp)
  4714.             move.w              #$011F,-(sp)
  4715.             dc.w                $AA5E
  4716.         EndM
  4717.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4718.         IMPORT_CFM_FUNCTION DirCreatePersonalDirectory
  4719.     ENDIF
  4720.  
  4721. ;
  4722. ; pascal OSErr DirOpenPersonalDirectory(DirParamBlockPtr paramBlock)
  4723. ;
  4724.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4725.         Macro
  4726.         _DirOpenPersonalDirectory
  4727.             moveq               #0,D0
  4728.             move.b              D0,-(sp)
  4729.             move.w              #$011E,-(sp)
  4730.             dc.w                $AA5E
  4731.         EndM
  4732.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4733.         IMPORT_CFM_FUNCTION DirOpenPersonalDirectory
  4734.     ENDIF
  4735.  
  4736. ;
  4737. ; pascal OSErr DirClosePersonalDirectory(DirParamBlockPtr paramBlock)
  4738. ;
  4739.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4740.         Macro
  4741.         _DirClosePersonalDirectory
  4742.             moveq               #0,D0
  4743.             move.b              D0,-(sp)
  4744.             move.w              #$0131,-(sp)
  4745.             dc.w                $AA5E
  4746.         EndM
  4747.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4748.         IMPORT_CFM_FUNCTION DirClosePersonalDirectory
  4749.     ENDIF
  4750.  
  4751. ;
  4752. ; pascal OSErr DirMakePersonalDirectoryRLI(DirParamBlockPtr paramBlock)
  4753. ;
  4754.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4755.         Macro
  4756.         _DirMakePersonalDirectoryRLI
  4757.             moveq               #0,D0
  4758.             move.b              D0,-(sp)
  4759.             move.w              #$0132,-(sp)
  4760.             dc.w                $AA5E
  4761.         EndM
  4762.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4763.         IMPORT_CFM_FUNCTION DirMakePersonalDirectoryRLI
  4764.     ENDIF
  4765.  
  4766. ;
  4767. ; pascal OSErr DirAddDSAM(DirParamBlockPtr paramBlock)
  4768. ;
  4769.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4770.         Macro
  4771.         _DirAddDSAM
  4772.             moveq               #0,D0
  4773.             move.b              D0,-(sp)
  4774.             move.w              #$011D,-(sp)
  4775.             dc.w                $AA5E
  4776.         EndM
  4777.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4778.         IMPORT_CFM_FUNCTION DirAddDSAM
  4779.     ENDIF
  4780.  
  4781. ;
  4782. ; pascal OSErr DirInstantiateDSAM(DirParamBlockPtr paramBlock)
  4783. ;
  4784.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4785.         Macro
  4786.         _DirInstantiateDSAM
  4787.             moveq               #0,D0
  4788.             move.b              D0,-(sp)
  4789.             move.w              #$0127,-(sp)
  4790.             dc.w                $AA5E
  4791.         EndM
  4792.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4793.         IMPORT_CFM_FUNCTION DirInstantiateDSAM
  4794.     ENDIF
  4795.  
  4796.  
  4797. ;
  4798. ; pascal OSErr DirRemoveDSAM(DirParamBlockPtr paramBlock)
  4799. ;
  4800.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4801.         Macro
  4802.         _DirRemoveDSAM
  4803.             moveq               #0,D0
  4804.             move.b              D0,-(sp)
  4805.             move.w              #$0120,-(sp)
  4806.             dc.w                $AA5E
  4807.         EndM
  4808.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4809.         IMPORT_CFM_FUNCTION DirRemoveDSAM
  4810.     ENDIF
  4811.  
  4812. ;
  4813. ; pascal OSErr DirAddDSAMDirectory(DirParamBlockPtr paramBlock, Boolean async)
  4814. ;
  4815.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4816.         Macro
  4817.         _DirAddDSAMDirectory
  4818.             move.w              #$0133,-(sp)
  4819.             dc.w                $AA5E
  4820.         EndM
  4821.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4822.         IMPORT_CFM_FUNCTION DirAddDSAMDirectory
  4823.     ENDIF
  4824.  
  4825. ;
  4826. ; pascal OSErr DirGetExtendedDirectoriesInfo(DirParamBlockPtr paramBlock, Boolean async)
  4827. ;
  4828.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4829.         Macro
  4830.         _DirGetExtendedDirectoriesInfo
  4831.             move.w              #$0136,-(sp)
  4832.             dc.w                $AA5E
  4833.         EndM
  4834.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4835.         IMPORT_CFM_FUNCTION DirGetExtendedDirectoriesInfo
  4836.     ENDIF
  4837.  
  4838. ;
  4839. ; pascal OSErr DirGetDirectoryIcon(DirParamBlockPtr paramBlock, Boolean async)
  4840. ;
  4841.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4842.         Macro
  4843.         _DirGetDirectoryIcon
  4844.             move.w              #$0121,-(sp)
  4845.             dc.w                $AA5E
  4846.         EndM
  4847.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4848.         IMPORT_CFM_FUNCTION DirGetDirectoryIcon
  4849.     ENDIF
  4850.  
  4851.  
  4852. ;
  4853. ; pascal OSErr DirAddADAPDirectory(DirParamBlockPtr paramBlock, Boolean async)
  4854. ;
  4855.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4856.         Macro
  4857.         _DirAddADAPDirectory
  4858.             move.w              #$0137,-(sp)
  4859.             dc.w                $AA5E
  4860.         EndM
  4861.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4862.         IMPORT_CFM_FUNCTION DirAddADAPDirectory
  4863.     ENDIF
  4864.  
  4865. ;
  4866. ; pascal OSErr DirRemoveDirectory(DirParamBlockPtr paramBlock, Boolean async)
  4867. ;
  4868.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4869.         Macro
  4870.         _DirRemoveDirectory
  4871.             move.w              #$0135,-(sp)
  4872.             dc.w                $AA5E
  4873.         EndM
  4874.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4875.         IMPORT_CFM_FUNCTION DirRemoveDirectory
  4876.     ENDIF
  4877.  
  4878. ;
  4879. ; pascal OSErr DirNetSearchADAPDirectoriesGet(DirParamBlockPtr paramBlock, Boolean async)
  4880. ;
  4881.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4882.         Macro
  4883.         _DirNetSearchADAPDirectoriesGet
  4884.             move.w              #$0108,-(sp)
  4885.             dc.w                $AA5E
  4886.         EndM
  4887.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4888.         IMPORT_CFM_FUNCTION DirNetSearchADAPDirectoriesGet
  4889.     ENDIF
  4890.  
  4891. ;
  4892. ; pascal OSErr DirNetSearchADAPDirectoriesParse(DirParamBlockPtr paramBlock, Boolean async)
  4893. ;
  4894.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4895.         Macro
  4896.         _DirNetSearchADAPDirectoriesParse
  4897.             move.w              #$0105,-(sp)
  4898.             dc.w                $AA5E
  4899.         EndM
  4900.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4901.         IMPORT_CFM_FUNCTION DirNetSearchADAPDirectoriesParse
  4902.     ENDIF
  4903.  
  4904. ;
  4905. ; pascal OSErr DirFindADAPDirectoryByNetSearch(DirParamBlockPtr paramBlock, Boolean async)
  4906. ;
  4907.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4908.         Macro
  4909.         _DirFindADAPDirectoryByNetSearch
  4910.             move.w              #$0107,-(sp)
  4911.             dc.w                $AA5E
  4912.         EndM
  4913.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4914.         IMPORT_CFM_FUNCTION DirFindADAPDirectoryByNetSearch
  4915.     ENDIF
  4916.  
  4917. ;
  4918. ; pascal OSErr DirGetOCESetupRefNum(DirParamBlockPtr paramBlock, Boolean async)
  4919. ;
  4920.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4921.         Macro
  4922.         _DirGetOCESetupRefNum
  4923.             move.w              #$0128,-(sp)
  4924.             dc.w                $AA5E
  4925.         EndM
  4926.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4927.         IMPORT_CFM_FUNCTION DirGetOCESetupRefNum
  4928.     ENDIF
  4929.  
  4930. ;
  4931. ; pascal OSErr DirAbort(DirParamBlockPtr paramBlock)
  4932. ;
  4933.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4934.         Macro
  4935.         _DirAbort
  4936.             moveq               #0,D0
  4937.             move.b              D0,-(sp)
  4938.             move.w              #$011B,-(sp)
  4939.             dc.w                $AA5E
  4940.         EndM
  4941.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4942.         IMPORT_CFM_FUNCTION DirAbort
  4943.     ENDIF
  4944.  
  4945. ;
  4946. ; pascal OSErr OCESetupAddDirectoryInfo(AuthParamBlockPtr paramBlock, Boolean async)
  4947. ;
  4948.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4949.         Macro
  4950.         _OCESetupAddDirectoryInfo
  4951.             move.w              #$0219,-(sp)
  4952.             dc.w                $AA5E
  4953.         EndM
  4954.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4955.         IMPORT_CFM_FUNCTION OCESetupAddDirectoryInfo
  4956.     ENDIF
  4957.  
  4958. ;
  4959. ; pascal OSErr OCESetupChangeDirectoryInfo(AuthParamBlockPtr paramBlock, Boolean async)
  4960. ;
  4961.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4962.         Macro
  4963.         _OCESetupChangeDirectoryInfo
  4964.             move.w              #$021B,-(sp)
  4965.             dc.w                $AA5E
  4966.         EndM
  4967.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4968.         IMPORT_CFM_FUNCTION OCESetupChangeDirectoryInfo
  4969.     ENDIF
  4970.  
  4971. ;
  4972. ; pascal OSErr OCESetupRemoveDirectoryInfo(AuthParamBlockPtr paramBlock, Boolean async)
  4973. ;
  4974.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4975.         Macro
  4976.         _OCESetupRemoveDirectoryInfo
  4977.             move.w              #$020D,-(sp)
  4978.             dc.w                $AA5E
  4979.         EndM
  4980.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4981.         IMPORT_CFM_FUNCTION OCESetupRemoveDirectoryInfo
  4982.     ENDIF
  4983.  
  4984. ;
  4985. ; pascal OSErr OCESetupGetDirectoryInfo(AuthParamBlockPtr paramBlock, Boolean async)
  4986. ;
  4987.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  4988.         Macro
  4989.         _OCESetupGetDirectoryInfo
  4990.             move.w              #$020E,-(sp)
  4991.             dc.w                $AA5E
  4992.         EndM
  4993.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  4994.         IMPORT_CFM_FUNCTION OCESetupGetDirectoryInfo
  4995.     ENDIF
  4996.  
  4997.     ENDIF ; __OCEAUTHDIR__ 
  4998.  
  4999.